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
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?
Alte întrebări interesante
Studii sociale,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă