fbpx

Problema #1927 – Bitsort – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dă un vector cu n elemente, numere naturale nenule. Afișați termenii în ordine crescătoare.

Termenii care apar de mai multe ori se vor afișa o singură dată.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere naturale nenule, separate prin spații.

Date de ieșire

Programul afișează elementele vectorului, în ordine crescătoare, separate prin spații, respectând cerința cerută.

Restricții și precizări

  • 1 ≤ n ≤ 1.000.000
  • cele n numere citite vor fi mai mici sau egale cu 300.000
  • Atenție la limita de memorie!

Exemplu

Intrare

7 
9 8 8 8 1 2 8

Ieșire

1 2 8 9

Explicație

Elementele distincte care apar in vectorul inițial sunt: 9, 8, 1, 2

După sortare, vectorul se va reprezenta ca: 1, 2, 8, 9

#include <bits/stdc++.h>

using namespace std;

bitset<300001>f;

int main()
{
    int n;
    cin >> n;
    int x;
    for(int i = 0 ; i < n ; ++i)
        cin >> x , f[x]=1;
    for(int i = 1 ; i < 300001 ; ++i)
        if(f[i]!=0)
            cout << i << ' ';
    return 0;    
}
Comentarii

S-ar putea sa iti placa