Більші за середнє арифметичне#7833

Більші за середнє арифметичне (Розбір)

Спочатку обчислимо суму заданих чисел. Середнє арифметичне всіх чисел дорівнює . Далі знайдемо суму і кількість чисел, які більші за середнє арифметичне.

Приклад

В прикладі задано n = 5 чисел. Їх сума дорівнює s = 1 + 6 + 2 + 6 + 3 = 18. Середнє арифметичне чисел дорівнює s / n = 18 / 5 = 3.6. Є два числа, більші за : це дві шістки. Їх сума дорівнює .

Реалізація алгоритму

Читаємо вхідний масив. Обчислюємо суму його елементів.

scanf("%d",&n);
for(i = 0; i < n; i++)
{
  scanf("%d",&m[i]);
  s += m[i];
}

Обчислюємо суму і кількість елементів масиву , які більші за середнє арифметичне . Зауважимо, що нерівність m[i] > s / n еквівалентна m[i] \cdot n > s.

sum = cnt = 0;
for(i = 0; i < n; i++)
  if (m[i] * n > s) // m[i] > s / n
  {
    sum += m[i];
    cnt++;
  }

Виводимо відповідь.

printf("%d %d\n",sum,cnt);

Python реалізація

Читаємо вхідні дані.

n = int(input())
lst = list(map(int, input().split()))

Обчислюємо середнє арифметичне списку.

ave = sum(lst) / len(lst)

Будуємо список з чисел, більших за середнє арифметичне.

above_ave = [x for x in lst if x > ave]

Обчислюємо суму і кількість чисел, більших за середнє арифметичне.

sum = sum(above_ave)
cnt = len(above_ave)

Виводимо відповідь.

print(sum, cnt)