LearnToCP
Prijavi se
Navigacija
PočetnaRoad-mapaProblemiO Nama
Teorija
Takmičarsko Znanje
Izbor Radnog Okruženja (IDE)Interaktivni ZadaciOutput-only Zadaci
Osnove
Tvoj Prvi ProgramTipovi podataka, Unos i IzlazC++ sintaksaModuloFunkcijeVektoriMatriceVremenska Složenost Algoritma
Sortiranje
SortiranjeSortiranje PrebrojavanjemRadix Sort
Tehnike Optimizacije
Dva PokazivačaZbir brojeva od 1 do nZbir PrefiksaBinarna PretragaPohlepni AlgoritmiFunkcije Binarne PretrageBinarna Pretraga po RešenjuPodeli, pa Vladaj
Binarni Brojevi
Binarni BrojeviBrojevi u koduOperacije nad BitovimaBitmaske
Matematika
Binarno StepenovanjeProsti BrojeviRastavljanje na proste činioceNZD i NZSEratostenovo SitoModifikovano Sito
Strukture Podataka
Niske (Stringovi)StekRedMapeSkupovi (Set)Red sa PrioritetomKorišćenje Proizvoljnih KriterijumaSegmentna StablaFenvikova StablaSparse TabeleDisjunktni SkupoviSqrt Dekompozicija
Kombinatorika
Pravilo SabiranjaPravilo MnoženjaKombinatorni ObjektiPrincip Uključenja Isključenja
Geometrija
Osnove GeometrijeVektorski i Skalarni ProizvodLinijePoligoniTačke i PoligoniKonveksni Omotač
Rekurzija
PokazivačiRekurzijaGenerisanje Kombinatornih Objekata
Dinamičko Programiranje
O DP-uDP problemiDP nad StablimaDP nad Bitmaskama
Teorija Grafova
GrafoviDFS i BFSNajkraći PuteviStablaTopološko SortiranjeDajkstrin AlgoritamMinimalna Razapinjuća StablaAlgoritmi Najkraćih Puteva
Napredna Teorija Grafova
Dvostruka PovezanostJako Povezane KomponenteBipartitni GrafMaksimalni Protok u GrafuFord-Fulkersonov AlgoritamDualnost Protoka i Minimalnog PresekaTeško-Laka DekompozicijaCentroidna Dekompozicija
Napredne Strukture Podataka
2D i 3D Segmentna StablaLenjo PropagiranjeImplicitna Segmentna StablaPerzistentna Segmentna StablaNajbliži Zajednički PredakTrieBalansirana Binarna Stabla PretrageMoov Algoritam

Jaki parovi

MediumProblem #37
VremeMemorijaUlazIzlaz
1 s64 MBstdinstdout

U radionici na stolu leži n senzora, a i-ti od njih ima oznaku ai​. Dva senzora mogu da se povežu samo ako su jaki zajedno, što uputstvo definiše ovako: senzori i i j čine jak par kada važi

ai​&aj​≥ai​⊕aj​

gde & označava bitovsku AND operaciju, a ⊕ bitovsku XOR operaciju.

Prebroj koliko ima jakih parova (i,j) za koje je i<j. Dva senzora sa različitih mesta na stolu uvek čine različit par, čak i kada im se oznake slučajno poklapaju.

Ulaz

U prvom redu ulaza je ceo broj t - broj test primera.
Svaki test primer zauzima dva reda. U prvom redu je ceo broj n - broj senzora. U drugom redu je n celih brojeva a1​,a2​,…,an​ - njihove oznake.

Izlaz

Za svaki test primer ispiši u zasebnom redu broj jakih parova.

Primer

Input
3
5
1 4 3 7 10
4
6 2 5 3
2
2 4
Output
1
2
0

U prvom test primeru jedini jak par je (4,7), jer je 4&7=4, dok je 4⊕7=3. U trećem test primeru je 2&4=0 i 2⊕4=6, pa taj par nije jak i odgovor je 0.

Ograničenja

1≤t≤10
1≤n≤105
1≤ai​≤109
Zbir svih n preko svih test primera nije veći od 105.


Zadatak je adaptiran iz zadatka Rock and Lever, zadatak B sa Codeforces Round 672 (Div. 2).

Pošalji svoje rešenje

Prijavi se da pošalješ rešenje i pratiš svoj napredak.

Prijavi se