Cerința
Se dă un șir format din n
numere naturale. Toate valorile putere a lui 2 din acest șir au frecvență pară, cu o singură excepție. Determinați această valoare – putere a lui 2 cu frecvență impară.
Date de intrare
Fișierul de intrare frecvimp.in
conține pe prima linie numărul n
, iar pe a doua linie n
numere naturale separate prin spații.
Date de ieșire
Fișierul de ieșire frecvimp.out
va conține pe prima linie numărul p
, reprezentând singura valoare din șirul dat care este putere a lui 2 și are frecvență impară.
Restricții și precizări
1 ≤ n ≤ 1000000
- numerele de pe a doua linie a fișierului de intrare sunt natural, nenule și mai mici decât \( 9223372036854775807 \)
- \( 9223372036854775807 = 2^{63}-1 \)
Exemplu
frecvimp.in
10 41 235 64 41 512 64 1488 512 361 512
frecvimp.out
512
Explicație
În fișierul de intrare sunt 2
puteri ale lui 2, 64
și 512
, dintre care 512
apare de 3
ori.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema FrecvImp:
#include <fstream>
using namespace std;
ifstream in("frecvimp.in");
ofstream out("frecvimp.out");
int main()
{
int n;
in >> n;
long long a = 0;
while(n--)
{
long long x;
in >> x;
if (!(x & (x - 1)))// verificam daca numarul este putere a lui 2
{
if (a == 0) a = x;
else a ^= x; // folosim xor
}
}
out << a; // afisam puterea lui 2 cu frecventa impara
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #2714 FrecvImp
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2714 FrecvImp de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!