Per prima cosa, trova l'elemento massimo dell'array. Poi calcola la somma di tutti gli elementi il cui valore è diverso dal massimo. Nota che il valore massimo può comparire nell'array più di una volta; in tal caso, tutti questi elementi vengono esclusi dalla somma.
Esempio
L'elemento più grande nell'esempio dato è .
La somma degli elementi diversi dal massimo è 5 + 3 + 4 + 6 = 18.
Implementazione dell'algoritmo
Dichiara l'array.
int m[101];Leggi i dati di input.
scanf("%d",&n);
for(i = 0; i < n; i++)
scanf("%d",&m[i]);Calcola l'elemento massimo .
mx = -100;
for(i = 0; i < n; i++)
if (m[i] > mx) mx = m[i];Trova la somma di tutti gli elementi dell'array diversi dal massimo .
s = 0;
for(i = 0; i < n; i++)Se l'elemento corrente è diverso dal massimo , aggiungilo alla somma .
if (m[i] != mx) s += m[i];Stampa la somma.
printf("%d\n",s);Implementazione dell'algoritmo — STL
Leggi i dati di input.
scanf("%d", &n);
v.resize(n);
for (i = 0; i < n; i++)
scanf("%d", &v[i]);Calcola l'elemento massimo .
mx = *max_element(v.begin(), v.end());Sostituisci tutte le occorrenze di nell'array con .
replace(v.begin(), v.end(), mx, 0);Calcola la somma di tutti gli elementi dell'array modificato (in cui gli elementi massimi sono stati sostituiti con ).
s = accumulate(v.begin(), v.end(), 0);Stampa la risposta — la somma di tutti gli elementi esclusi quelli massimi.
printf("%d\n", s);Implementazione in Java
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();
}
}Implementazione in Python
Leggi i dati di input.
n = int(input())
lst = list(map(int,input().split()))Trova l'elemento massimo nella lista .
mx = max(lst)Nella variabile calcola la somma di tutti gli elementi della lista diversi dal valore massimo .
sum = 0
for x in lst:
if x != mx: sum += xStampa la risposta.
print(sum)Implementazione in Python — somma
Leggi i dati di input.
n = int(input())
lst = list(map(int,input().split()))Trova l'elemento massimo nella lista .
mx = max(lst)Nella variabile calcola la somma di tutti gli elementi della lista diversi dal valore massimo .
res = sum(x for x in lst if x != mx)Stampa la risposta.
print(res)