#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+IE5NQVgpIHsKICAgICAgICByZXR1cm4gLTE7IC8vINCS0L7Qt9Cy0YDQsNGCIC0xINCyINGB0LvRg9GH0LDQtSDQvtGI0LjQsdC60LgKICAgIH0KICAgIGZvciAoaW50IGkgPSAwOyBpIDwgKm47IGkrKykgewogICAgICAgIGlmIChzY2FuZigiJWQiLCAmYVtpXSkgIT0gMSkgewogICAgICAgICAgICByZXR1cm4gLTE7IC8vINCS0L7Qt9Cy0YDQsNGCIC0xINCyINGB0LvRg9GH0LDQtSDQvtGI0LjQsdC60LgKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMDsgLy8g0KPRgdC/0LXRiNC90YvQuSDQstCy0L7QtAp9Cgpkb3VibGUgbWVhbihpbnQgKmEsIGludCBuKSB7CiAgICBkb3VibGUgc3VtID0gMC4wOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBzdW0gKz0gYVtpXTsKICAgIH0KICAgIHJldHVybiBzdW0gLyBuOyAvLyDQktC+0LfQstGA0LDRidCw0LXQvCDQvNCw0YLQtdC80LDRgtC40YfQtdGB0LrQvtC1INC+0LbQuNC00LDQvdC40LUKfQoKZG91YmxlIHZhcmlhbmNlKGludCAqYSwgaW50IG4pIHsKICAgIGRvdWJsZSBtZWFuX3ZhbCA9IG1lYW4oYSwgbik7CiAgICBkb3VibGUgc3VtX3NxdWFyZWRfZGlmZiA9IDAuMDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgZG91YmxlIGRpZmYgPSBhW2ldIC0gbWVhbl92YWw7CiAgICAgICAgc3VtX3NxdWFyZWRfZGlmZiArPSBkaWZmICogZGlmZjsgLy8g0KHRg9C80LzQsCDQutCy0LDQtNGA0LDRgtC+0LIg0L7RgtC60LvQvtC90LXQvdC40LkKICAgIH0KICAgIHJldHVybiBzdW1fc3F1YXJlZF9kaWZmIC8gbjsgLy8g0JLQvtC30LLRgNCw0YnQsNC10Lwg0LTQuNGB0L/QtdGA0YHQuNGOCn0KCmludCBzZWFyY2hfbnVtYmVyKGludCAqYSwgaW50IG4sIGRvdWJsZSBtZWFuX3ZhbCwgZG91YmxlIHZhcmlhbmNlX3ZhbCkgewogICAgZG91YmxlIHVwcGVyX2JvdW5kID0gbWVhbl92YWwgKyAzICogc3FydCh2YXJpYW5jZV92YWwpOyAvLyDQktC10YDRiNC40L3QsCDQv9GA0LXQtNC10LvQsCDQv9C+INC/0YDQsNCy0LjQu9GDINGC0YDQtdGFINGB0LjQs9C8CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIGlmIChhW2ldICUgMiA9PSAwICYmIC8vINCn0LXRgtC90L7QtQogICAgICAgICAgICBhW2ldID49IG1lYW5fdmFsICYmIC8vINCR0L7Qu9GM0YjQtSDQuNC70Lgg0YDQsNCy0L3QviDRgdGA0LXQtNC90LXQvNGDCiAgICAgICAgICAgIGFbaV0gPD0gdXBwZXJfYm91bmQgJiYgLy8g0JzQtdC90YzRiNC1INC40LvQuCDRgNCw0LLQvdC+INGB0YDQtdC00L3QtdC80YMgKyAzINGB0LjQs9C80YsKICAgICAgICAgICAgYVtpXSAhPSAwKSB7IC8vINCd0LUg0YDQsNCy0L3QviAwCiAgICAgICAgICAgIHJldHVybiBhW2ldOyAvLyDQktC+0LfQstGA0LDRidCw0LXQvCDQvdCw0LnQtNC10L3QvdC+0LUg0YfQuNGB0LvQvgogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAwOyAvLyDQldGB0LvQuCDQvdC1INC90LDQudC00LXQvdC+LCDQstC+0LfQstGA0LDRidCw0LXQvCAwCn0=