fbpx

Problema #2714 – FrecvImp – Rezolvari PBInfo

de Mihai-Alexandru

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 92233720368547758079223372036854775807
  • 9223372036854775807=26319223372036854775807=2631

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;
}
Comentarii

S-ar putea sa iti placa