Fişierul intrare/ieşire:aiacubiti.in, aiacubiti.outSursăGrigore Moisil 2017, 11-12
AutorAlex Cociorva, Razvan SalajanAdăugată degrigore.moisilGrigore Moisil grigore.moisil
Timp execuţie pe test4 secLimită de memorie131072 kbytes
Scorul tăuN/ADificultateN/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] < 220
  • Problema va fi evaluată pe teste în valoare de 90 de puncte
  • Se vor acorda 10 puncte din oficiu

Exemplu

aiacubiti.inaiacubiti.outExplicatie
4
15 0 10 5
2
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)

Explicaţie

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?