Elevii clasei a V-a au fost provocați de către colegii lor de la alte școli să participe la concursul TRIVIADOR. Într-o echipă participă exact trei elevi care trebuie să răspundă la întrebări de cultură generală, obținând punctaje individuale. Punctajul unei echipe este suma punctajelor obținute de către membrii acesteia.
Cerința
Date n
, numărul de echipe și punctajele individuale ale membrilor fiecăreia, să se determine cele mai mari două punctaje diferite, obținute de către echipele participante. Dacă nu există două punctaje diferite, se va afișa mesajul TOTI SUNT CASTIGATORI
Date de intrare
Fișierul de intrare triviador.in
conține pe prima linie n
, numărul de echipe și pe următoarele n
linii, câte trei numere separate printr-un spațiu, reprezentând punctajele celor trei membri ai fiecărei echipe.
Date de ieșire
Fișierul de ieșire triviador.out
va conţine pe prima linie două valori, în ordine descrescătoare, reprezentând cele mai mari două punctaje diferite obținute de către echipele participante sau mesajul TOTI SUNT CASTIGATORI
dacă nu sunt două valori maxime diferite.
Restricții și precizări
2 ≤ n ≤ 10000
0 ≤ punctaj ≤ 100000
Exemplul 1:
triviador.in
5 7 2 5 1 4 2 3 3 7 0 9 5 6 2 2
triviador.out
14 13
Explicație
Echipele obțin următoarele punctaje: 14=7+2+5
, 7=1+4+2
, 13=3+3+7
, 14=0+9+5
, 10=6+2+2
. Cele două punctaje maxime diferite sunt 14 13
.
Exemplul 1:
triviador.in
3 2 2 3 1 0 6 4 1 2
triviador.out
TOTI SUNT CASTIGATORI
Explicație
Echipele obțin punctaje egale cu 7
și se va afișa TOTI SUNT CASTIGATORI
.
#include <bits/stdc++.h> using namespace std; ifstream cin("triviador.in"); ofstream cout("triviador.out"); int s[10001]; int main() { int n; cin >> n; for(int i = 1; i <= n; ++i) { int x, y, z; cin >> x >> y >> z; s[i - 1] = x + y + z; } sort(s, s + n); bool ok = true; int max1 = 0, max2 = 0; for(int i = 1; i < n; ++i) { if(s[i] != s[i - 1]) ok = false; } if(ok) cout << "TOTI SUNT CASTIGATORI"; else { for(int i = n - 1 ; i >= 0 ; --i) { if(max1 == 0 && max2 == 0) max1 = s[i]; else if(max1 != 0 && max2 == 0) { if(s[i] > max2 && s[i] != max1) max2=s[i]; } } cout << max1 << " " << max2; } return 0; }