Ədədi ortasından böyük#7833

Ədədi ortasından böyük (Həll təhlili)

Əvvəlcə verilmiş ədədlərin cəmini hesablayırıq. Bütün ədədlərin arifmetik ortası -ə bərabərdir. Daha sonra arifmetik ortadan böyük olan ədədlərin cəmini və sayını tapırıq.

Misal

Misalda n = 5 ədəd verilib. Onların cəmi s = 1 + 6 + 2 + 6 + 3 = 18-ə bərabərdir. Ədədlərin arifmetik ortası s / n = 18 / 5 = 3.6-dır. -dən böyük iki ədəd var: bu iki altıdır. Onların cəmi -ə bərabərdir.

Alqoritmin həyata keçirilməsi

Giriş massivini oxuyuruq. Onun elementlərinin cəmini hesablayırıq.

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

Cəmi və arifmetik ortadan böyük olan massiv elementlərinin sayını hesablayırıq. Qeyd edək ki, m[i] > s / n bərabərsizliyi m[i] \cdot n > s-ə ekvivalentdir.

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

Cavabı çıxışa veririk.

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

Python həyata keçirilməsi

Giriş məlumatlarını oxuyuruq.

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

Siyahının arifmetik ortasını hesablayırıq.

ave = sum(lst) / len(lst)

Orta qiymətdən böyük ədədlərdən ibarət yeni siyahı qururuq.

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

Arifmetik ortadan böyük olan ədədlərin cəmini və sayını hesablayırıq.

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

Cavabı çıxışa veririk.

print(sum, cnt)