Cerința
La o serbare sunt n
grupe de copii care poartă p
tipuri de uniforme. Scrieţi un program care să afişeze pe ecran tipurile de uniforme în ordinea descrescătoare a numărului total de copii ce poartă fiecare tip de uniformă. Afişarea se va face pe o singură linie, valoriile fiind separate printr-un spaţiu.
Date de intrare
Fișierul de intrare serbare.in
conține, pe prima linie, numerele n
şi p
, separate printr-un spaţiu, iar pe următoarele n
linii câte două valori separate printr-un spaţiu ce reprezintă numărul de copii dintr-o grupă şi respectiv tipul de uniformă pe care aceştia îl poartă.
Date de ieșire
Fișierul de ieșire serbare.out
va conţine tipurile de uniforme în ordinea descrescătoare a numărului total de copii ce poartă fiecare tip de uniformă. Numerele vor fi separate printr-un spaţiu.
Restricții și precizări
1 ≤ n ≤ 1000
1 ≤ p ≤ 11
- Numărul de copii dintr-o grupă este cel mult
100
- Fiecare mărime de uniformă din intervalul
[1,p]
este purtată de cel puţin un copil.
Exemplu:
serbare.in
5 3 20 2 20 3 30 2 20 1 10 1
serbare.out
2 1 3
Explicaţii:
Tipul 2
de uniformă este purtat de 50
de copii, tipul 1
de 30
de copii, iar tipul 3
de 20 de copii.
#include <bits/stdc++.h> using namespace std; ifstream fin("serbare.in"); ofstream fout("serbare.out"); int main() { int f[11]={0} , n , m , c , b , maxi = 0; fin >> n >> m; for(int i = 0 ; i < n ; ++i) { fin >> c >> b; f[b]+=c; if(f[b] > maxi) maxi=f[b]; } for(int i = maxi ; i >= 1 ; --i) { for(int j = 1 ; j <= m ; ++j) { if(i==f[j]) fout << j <<" "; } } return 0; }