Ən böyük olmadan cəm#7831

Ən böyük olmadan cəm (Həll təhlili)

Massivin maksimum elementini tapırıq. Maksimuma bərabər olmayan bütün ədədlərin cəmini hesablayırıq. Qeyd edək ki, massivdə maksimum elementlər bir neçə ola bilər.

Nümunə

Gətirilən nümunədə ən böyük element -a bərabərdir.

Maksimuma bərabər olmayan elementlərin cəmi 5 + 3 + 4 + 6 = 18-ə bərabərdir.

Alqoritmin icrası

İşçi massivi elan edirik.

int m[101];

Giriş massivini oxuyuruq.

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

Maksimum elementi tapırıq.

mx = -100;
for(i = 0; i < n; i++)
  if (m[i] > mx) mx = m[i];

Maksimuma bərabər olmayan bütün massiv elementlərinin cəmi tapırıq.

s = 0;
for(i = 0; i < n; i++)

Əgər cari element maksimum -a bərabər deyilsə, onu cəm -ə əlavə edirik.

  if (m[i] != mx) s += m[i];

Axtarılan cəmi çıxışa yazırıq.

printf("%d\n",s);

Alqoritmin icrası — STL

Giriş məlumatlarını oxuyuruq. Giriş ardıcıllığını vektorunda saxlayırıq.

scanf("%d", &n);
v.resize(n);
for (i = 0; i < n; i++)
  scanf("%d", &v[i]);

Maksimum elementi tapırıq.

mx = *max_element(v.begin(), v.end());

Bütün elementlərini massivdə -la əvəz edirik.

replace(v.begin(), v.end(), mx, 0);

Massivdəki bütün elementlərin cəmini tapırıq (maksimum elementlər -la əvəz olunub).

s = accumulate(v.begin(), v.end(), 0);

Cəmi, yəni maksimum elementlərin olmadan əvvəlki bütün elementlərin cəmini, çıxışa yazırıq.

printf("%d\n", s);

Java icrası

import java.util.*;

public class Main 
{
  public static void main(String[] args) 
  {
    Scanner con = new Scanner(System.in);
    int n = con.nextInt();
    int m[] = new int[n];
    for (int i = 0; i < n; i++)
      m[i] = con.nextInt();
    
    int max = -100;
    for(int i = 0; i < n; i++)
      if (m[i] > max) max = m[i];

    int s = 0;
    for(int i = 0; i < n; i++)
      if (m[i] != max) s += m[i];
    
    System.out.println(s);
    con.close();
  }
}

Python icrası

Giriş məlumatlarını oxuyuruq.

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

siyahısının maksimum elementini tapırıq.

mx = max(lst)

dəyişənində siyahısının maksimum qiymət -a bərabər olmayan elementlərinin cəmini tapırıq.

sum = 0
for x in lst:
  if x != mx: sum += x

Cavabı çıxışa yazırıq.

print(sum)

Python icrası — cəmləmə

Giriş məlumatlarını oxuyuruq.

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

Siyahının maksimum elementini tapırıq.

mx = max(lst)

siyahısının maksimum qiymət -a bərabər olmayan təkliklərinin cəmini dəyişənində hesablayırıq.

res = sum(x for x in lst if x != mx)

Cavabı çıxışa yazırıq.

print(res)