Cerința
Dându-se un șir de numere naturale, să se determine câte dintre ele apar o singură dată.
Date de intrare
Programul citește de la tastatură cel mult 1.000.000 de numere naturale.
Date de ieșire
Programul va afișa pe ecran numărul de numere care apar o singură dată în șir.
Restricții și precizări
numerele citite vor fi mai mici decât 200.000
în șir sunt cel puțin un număr și cel mult 1.000.000 de numere naturale
Exemplul 1:
Intrare
5 4 3 2 3 3 5 6 4 3 3
Ieșire
2
Explicație
Numerele care apar o singură dată sunt 2 și 6.
andrei750238:
Cum ai rezolva problema daca vectorul ar fi sortat ?
Răspunsuri la întrebare
Răspuns de
0
Răspuns:
#include<fstream>
#include<vector>
std::ifstream f ("date.in");
std::ofstream g ("date.out");
std::vector<int> fr(1000000, 0);
int n,x;
int main()
{
while (f>>x)
{
fr.at(x)++;
}
std::vector<int>::iterator it;
it = fr.begin();
while(it!=fr.end())
{
if(*it==1)
n++;
it++;
}
g<<n;
f.close();
g.close();
return 0;
}
Explicație:
Note: Aici ai o solutie cu STL vector. Poti folosi oricand in schimb un raw array.
Alte întrebări interesante
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Germana,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă