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 GeometrijeVektoriVektorski i Skalarni ProizvodLinijePoligoniUgloviTačka u PoligonuRastojanja i Tačke PresekaKonveksni OmotačKrugovi
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

Broj inverzija II

MediumProblem #65
VremeMemorijaUlazIzlaz
1 s64 MBstdinstdout

Isti zadatak kao ranije, ali ga ovaj put reši Fenvikovim stablom. Za svaki element - koliko je onih pre njega veće od njega?

Inverzija u nizu je par pozicija i<j kod kog je raniji element veći, dakle ai​>aj​. Sortiran niz nema nijednu inverziju, a niz sortiran naopako ima ih koliko ima i parova - pa broj inverzija govori koliko je niz daleko od sortiranog.

Tvoj zadatak je da ih prebrojiš.

Ovo je isti zadatak kao Broj inverzija, ponovljen ovde da bi se rešio na drugi način - strukturom iz ovog poglavlja, umesto merge sortom.

Ulaz

U prvoj liniji ulaza je jedan ceo broj t - broj test primera.
U prvoj liniji svakog test primera je jedan ceo broj n - dužina niza.
U drugoj liniji je n celih brojeva a1​,a2​,…,an​.

Izlaz

Za svaki test primer ispiši u posebnoj liniji broj inverzija u tom nizu.

Primer

Input
2
5
3 1 4 2 5
4
4 3 2 1
Output
3
6

Prvi niz ima tri inverzije: parove (3,1), (3,2) i (4,2). Drugi je sortiran unazad, pa je svaki od njegovih 6 parova inverzija.

Ograničenja

1≤t≤10
1≤n≤105
−109≤ai​≤109
Zbir n preko svih test primera ne prelazi 2⋅105


Zadatak je, uz dozvolu, preuzet iz zadatka Broj inverzija, čiji su autori Društvo matematičara Srbije i Fondacija Petlja.

Pošalji svoje rešenje

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

Prijavi se