Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | aiacubiti.in, aiacubiti.out | Sursă | Grigore Moisil 2017, 11-12 |
Autor | Alex Cociorva, Razvan Salajan | Adăugată de | |
Timp execuţie pe test | 2 sec | Limită de memorie | 131072 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Aiacubiti
Lui Bulănel îi plac numerele şi reprezentarea lor în baza 2. Bulănică, un prieten de-al lui, a venit într-o zi cu o problemă pe care Bulănel i-a rezolvat-o într-o secundă. Dupa ce a rezolvat-o, lui Bulanel i-a venit o idee de a modifica problema pentru a face-o mai grea. După ce au stat câteva minute să se gândească aceştia şi-au dat seama de soluţie. Acum cei doi sunt dispuşi să vă dea 100 de puncte dacă rezolvaţi problema.
Cerinta
Se dă şir un A cu N numere naturale. Se cere să se afle numărul de perechi (i,j) cu i ≤ j astfel încat numărul de biţi diferiţi din reprezentarea binară a elementelor, A[i] respectiv A[j], este exact 4.
Date de intrare
Fişierul de intrare aiacubiti.in conţine pe prima linie un număr natural N, care reprezintă lungimea şirului. Pe următoare linie se află şirul format din N numere naturale separate printr-un spaţiu.
Date de ieşire
În fişierul de ieşire aiacubiti.out conţine un singur număr reprezentând numărul de perechi cerut de Bulănel şi Bulănică.
Restricţii si precizari
- 1 ≤ N ≤ 100000
- Pentru teste în valoare de 20 de puncte N ≤ 1000
- 0 ≤ A[i] < 2^20
- Problema va fi evaluată pe teste în valoare de 90 de puncte
- Se vor acorda 10 puncte din oficiu
Exemplu
aiacubiti.in | aiacubiti.out |
---|---|
4 15 0 10 5 | 2 |
Explicaţie
Vom scrie fiecare număr in baza 2:
15 – 1111
0 – 0000
10 – 1010
5 – 0101
Perechile care diferă prin exact 4 biţi sunt:
(A(1), A(2)) = (15, 0) = (1111, 0000)
(A(3), A(4)) = (10, 5) = (1010, 0101)