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 ≤ 10001 ≤ 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;
}