Informatică, întrebare adresată de Dyana801, 8 ani în urmă

Am nevoie de ajutor la problema #1927 (Bitsort) de pe pbinfo (in c++)
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

Răspunsuri la întrebare

Răspuns de rotti321ot4wir
4

#include <iostream>

#include <bitset>

using namespace std;

bitset <300035> A;

int main()

{

//pentru a scoate un timp mai bun vom folosi urmatoarea expresie:

  ios::sync_with_stdio(false);

  int n, x, maxim = 0;

  cin>> n;

  for(int i=1 ; i<=n ; i++)

  {

      cin>> x;

      A[x] = true;

      if(x > maxim)

       maxim = x;

  }

  for(int i=1 ; i<=maxim ; i++)

       if(A[i])

       cout<<i<<" ";

  return 0;

}


Dyana801: Multumesc. Dar ca sa nu folosesc expresia respectiva, ce metoda ar mai fi?
rotti321ot4wir: Vezi celelalte surse oficiale pe pbinfo..Asta e una din ele, mai sunt doua
Dyana801: Ok, mersi :)
Alte întrebări interesante