import java.util.Scanner;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
double x = sc.nextDouble();
double h = sc.nextDouble();
double a = sc.nextDouble();
List<Double> R = new ArrayList<>();
// Задание 1. Создание массива
for (int i = 1; i <= n; i++) {
R.add(2.5 * Math.sin(a * x + i * i * h));
}
print(R);
// Задание 2. Поиск первого минимума
int min = 0;
for (int i = 1; i < R.size(); i++) {
if (R.get(i) < R.get(min)) {
min = i;
}
}
// Поиск последнего положительного
int pos = -1;
for (int i = 0; i < R.size(); i++) {
if (R.get(i) > 0) {
pos = i;
}
}
// Удаление отрицательных элементов
if (pos == -1) {
System.out.println("Нет положительного элемента");
} else {
int left = Math.min(min, pos);
int right = Math.max(min, pos);
for (int i = right - 1; i > left; i--) {
if (R.get(i) < 0) {
R.remove(i);
}
}
}
if (pos != -1) {
print(R);
}
// Задание 3. Среднее арифметическое
double sum = 0;
int count = 0;
boolean found = false;
for (int i = 0; i < R.size(); i++) {
if (R.get(i) < 0) {
found = true;
break;
}
sum += R.get(i);
count++;
}
if (found && count > 0) {
double sr = sum / count;
System.out.printf("Sr=%.3f%n", sr);
} else {
System.out.println("Нет среднего значения");
}
sc.close();
}
// Метод вывода массива
public static void print(List<Double> R) {
System.out.print("R={");
for (int i = 0; i < R.size(); i++) {
System.out.printf("%.3f", R.get(i));
if (i < R.size() - 1) {
System.out.print("; ");
}
}
System.out.println("}");
}
}