#include <stdio.h>
#include <math.h>
#include <limits.h>
#define NMAX 30
int input(int *a, int *n);
double mean(int *a, int n);
double variance(int *a, int n);
int search_number(int *a, int n, double mean_val, double variance_val);
int main() {
int n, data[NMAX];
if (input(data, &n) == -1) { // Обработка некорректного ввода
return 1; // Завершение с кодом ошибки
}
double mean_val = mean(data, n); // Вычисляем математическое ожидание
double variance_val = variance(data, n); // Вычисляем дисперсию
int result = search_number(data, n, mean_val, variance_val); // Поиск нужного числа
return 0;
}
int input(int *a, int *n) {
if (scanf("%d", n
) != 1 || *n
< 1 || *n
> NMAX
) { return -1; // Возврат -1 в случае ошибки
}
for (int i = 0; i < *n; i++) {
if (scanf("%d", &a
[i
]) != 1) { // Проверка ввода элементов return -1; // Возврат -1 в случае ошибки
}
}
return 0; // Успешный ввод
}
double mean(int *a, int n) {
double sum = 0.0;
for (int i = 0; i < n; i++) {
sum += a[i];
}
return sum / n; // Возвращаем математическое ожидание
}
double variance(int *a, int n) {
double mean_val = mean(a, n);
double sum_squared_diff = 0.0;
for (int i = 0; i < n; i++) {
double diff = a[i] - mean_val;
sum_squared_diff += diff * diff; // Сумма квадратов отклонений
}
return sum_squared_diff / n; // Возвращаем дисперсию
}
int search_number(int *a, int n, double mean_val, double variance_val) {
double upper_bound
= mean_val
+ 3 * sqrt(variance_val
); // Вершина предела по правилу трех сигм for (int i = 0; i < n; i++) {
if (a[i] % 2 == 0 && // Четное
a[i] >= mean_val && // Больше или равно среднему
a[i] <= upper_bound && // Меньше или равно среднему + 3 сигмы
a[i] != 0) // Не равно 0
{
return a[i]; // Возвращаем найденное число
}
}
return 0; // Если не найдено, возвращаем 0
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CiNpbmNsdWRlIDxsaW1pdHMuaD4KCiNkZWZpbmUgTk1BWCAzMAoKaW50IGlucHV0KGludCAqYSwgaW50ICpuKTsKZG91YmxlIG1lYW4oaW50ICphLCBpbnQgbik7CmRvdWJsZSB2YXJpYW5jZShpbnQgKmEsIGludCBuKTsKaW50IHNlYXJjaF9udW1iZXIoaW50ICphLCBpbnQgbiwgZG91YmxlIG1lYW5fdmFsLCBkb3VibGUgdmFyaWFuY2VfdmFsKTsKCmludCBtYWluKCkgewogICAgaW50IG4sIGRhdGFbTk1BWF07CgogICAgaWYgKGlucHV0KGRhdGEsICZuKSA9PSAtMSkgeyAvLyDQntCx0YDQsNCx0L7RgtC60LAg0L3QtdC60L7RgNGA0LXQutGC0L3QvtCz0L4g0LLQstC+0LTQsAogICAgICAgIHByaW50Zigibi9hXG4iKTsKICAgICAgICByZXR1cm4gMTsgLy8g0JfQsNCy0LXRgNGI0LXQvdC40LUg0YEg0LrQvtC00L7QvCDQvtGI0LjQsdC60LgKICAgIH0KCiAgICBkb3VibGUgbWVhbl92YWwgPSBtZWFuKGRhdGEsIG4pOyAvLyDQktGL0YfQuNGB0LvRj9C10Lwg0LzQsNGC0LXQvNCw0YLQuNGH0LXRgdC60L7QtSDQvtC20LjQtNCw0L3QuNC1CiAgICBkb3VibGUgdmFyaWFuY2VfdmFsID0gdmFyaWFuY2UoZGF0YSwgbik7IC8vINCS0YvRh9C40YHQu9GP0LXQvCDQtNC40YHQv9C10YDRgdC40Y4KCiAgICBpbnQgcmVzdWx0ID0gc2VhcmNoX251bWJlcihkYXRhLCBuLCBtZWFuX3ZhbCwgdmFyaWFuY2VfdmFsKTsgLy8g0J/QvtC40YHQuiDQvdGD0LbQvdC+0LPQviDRh9C40YHQu9CwCiAgICBwcmludGYoIiVkXG4iLCByZXN1bHQpOwoKICAgIHJldHVybiAwOwp9CgppbnQgaW5wdXQoaW50ICphLCBpbnQgKm4pIHsKICAgIGlmIChzY2FuZigiJWQiLCBuKSAhPSAxIHx8ICpuIDwgMSB8fCAqbiA+IE5NQVgpIHsKICAgICAgICByZXR1cm4gLTE7IC8vINCS0L7Qt9Cy0YDQsNGCIC0xINCyINGB0LvRg9GH0LDQtSDQvtGI0LjQsdC60LgKICAgIH0KICAgIGZvciAoaW50IGkgPSAwOyBpIDwgKm47IGkrKykgewogICAgICAgIGlmIChzY2FuZigiJWQiLCAmYVtpXSkgIT0gMSkgeyAvLyDQn9GA0L7QstC10YDQutCwINCy0LLQvtC00LAg0Y3Qu9C10LzQtdC90YLQvtCyCiAgICAgICAgICAgIHJldHVybiAtMTsgLy8g0JLQvtC30LLRgNCw0YIgLTEg0LIg0YHQu9GD0YfQsNC1INC+0YjQuNCx0LrQuAogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAwOyAvLyDQo9GB0L/QtdGI0L3Ri9C5INCy0LLQvtC0Cn0KCmRvdWJsZSBtZWFuKGludCAqYSwgaW50IG4pIHsKICAgIGRvdWJsZSBzdW0gPSAwLjA7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIHN1bSArPSBhW2ldOwogICAgfQogICAgcmV0dXJuIHN1bSAvIG47IC8vINCS0L7Qt9Cy0YDQsNGJ0LDQtdC8INC80LDRgtC10LzQsNGC0LjRh9C10YHQutC+0LUg0L7QttC40LTQsNC90LjQtQp9Cgpkb3VibGUgdmFyaWFuY2UoaW50ICphLCBpbnQgbikgewogICAgZG91YmxlIG1lYW5fdmFsID0gbWVhbihhLCBuKTsKICAgIGRvdWJsZSBzdW1fc3F1YXJlZF9kaWZmID0gMC4wOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBkb3VibGUgZGlmZiA9IGFbaV0gLSBtZWFuX3ZhbDsKICAgICAgICBzdW1fc3F1YXJlZF9kaWZmICs9IGRpZmYgKiBkaWZmOyAvLyDQodGD0LzQvNCwINC60LLQsNC00YDQsNGC0L7QsiDQvtGC0LrQu9C+0L3QtdC90LjQuQogICAgfQogICAgcmV0dXJuIHN1bV9zcXVhcmVkX2RpZmYgLyBuOyAvLyDQktC+0LfQstGA0LDRidCw0LXQvCDQtNC40YHQv9C10YDRgdC40Y4KfQoKaW50IHNlYXJjaF9udW1iZXIoaW50ICphLCBpbnQgbiwgZG91YmxlIG1lYW5fdmFsLCBkb3VibGUgdmFyaWFuY2VfdmFsKSB7CiAgICBkb3VibGUgdXBwZXJfYm91bmQgPSBtZWFuX3ZhbCArIDMgKiBzcXJ0KHZhcmlhbmNlX3ZhbCk7IC8vINCS0LXRgNGI0LjQvdCwINC/0YDQtdC00LXQu9CwINC/0L4g0L/RgNCw0LLQuNC70YMg0YLRgNC10YUg0YHQuNCz0LwKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgaWYgKGFbaV0gJSAyID09IDAgJiYgLy8g0KfQtdGC0L3QvtC1CiAgICAgICAgICAgIGFbaV0gPj0gbWVhbl92YWwgJiYgLy8g0JHQvtC70YzRiNC1INC40LvQuCDRgNCw0LLQvdC+INGB0YDQtdC00L3QtdC80YMKICAgICAgICAgICAgYVtpXSA8PSB1cHBlcl9ib3VuZCAmJiAvLyDQnNC10L3RjNGI0LUg0LjQu9C4INGA0LDQstC90L4g0YHRgNC10LTQvdC10LzRgyArIDMg0YHQuNCz0LzRiwogICAgICAgICAgICBhW2ldICE9IDApIC8vINCd0LUg0YDQsNCy0L3QviAwCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gYVtpXTsgLy8g0JLQvtC30LLRgNCw0YnQsNC10Lwg0L3QsNC50LTQtdC90L3QvtC1INGH0LjRgdC70L4KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMDsgLy8g0JXRgdC70Lgg0L3QtSDQvdCw0LnQtNC10L3Qviwg0LLQvtC30LLRgNCw0YnQsNC10LwgMAp9