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=263−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 a lui 2, 64
și 512
, dintre care 512
apare de 3
ori.
#include <bits/stdc++.h> using namespace std; ifstream cin("frecvimp.in"); ofstream cout("frecvimp.out"); int main() { long long n , x , p = 0; cin >> n; for(int i = 1 ; i <= n ; ++i) { cin >> x; if((x & (x - 1)) == 0) p = p ^ x; } cout << p; return 0; }