fbpx

Problema #301 – Frecventa1 – Rezolvari PBInfo

de Mihai-Alexandru

Cerinţa

Se dau n numere naturale cu cel mult două cifre fiecare. Afişaţi valorile distincte în ordinea descrescătoare a numărului de apariţii.

Date de intrare

Fişierul de intrare frecventa1.in conţine pe prima linie numărul n; urmează cele n numere, dispuse pe mai multe linii şi separate prin spaţii.

Date de ieşire

Fişierul de ieşire frecventa1.out va conţine pe prima linie valorile distincte dintre cele n, în ordinea descrescătoare a numărului de apariţii.

Restricţii şi precizări

  • 1 ≤ n ≤ 100000
  • dacă două valori apar de acelaşi număr de ori, se va afişa mai întâi valoarea mai mică

Exemplu

frecventa1.in

8
3 19 3 65 3 19 14 3

frecventa1.out

3 19 14 65
#include <bits/stdc++.h>

using namespace std;

ifstream fin("frecventa1.in");
ofstream fout("frecventa1.out");

int main()
{
    int f[100]={0};
    int n;
    fin >> n;
    int tmp;
    int max=0;
    for(int i = 0 ; i < n ; ++i)
    {
        fin >> tmp;
        f[tmp]++;
        if(f[tmp]>max)
        max=f[tmp];
    }
    for(int i = max ; i > 0 ; --i)
    {
        for(int j = 0 ; j < 100 ; ++j)
        {
            if(f[j]==i)
            fout << j << ' ';
        }
    }
    return 0;
}
Comentarii

S-ar putea sa iti placa