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

Ažuriranje medijane

EasyProblem #38
VremeMemorijaUlazIzlaz
1 s64 MBstdinstdout

Nikada ti ne treba ceo sortiran niz - samo ono što se nalazi na njegovoj sredini.

Zavod za statistiku želi da objavi pošten podatak o prosečnoj plati. Aritmetička sredina se pokazala kao loš izbor - nekoliko ljudi sa ogromnim platama je podigne daleko iznad onoga što zarađuje običan čovek. Zato su prešli na medijanu: poređaj sve plate u neopadajući niz i uzmi onu na sredini. Ako je broj plata paran, nema jedne središnje, pa je medijana aritmetička sredina dve središnje vrednosti.

Na primer, medijana niza 1,2,4,7,9 je 4, a medijana niza 1,2,4,5,7,9 je 4.5.

Plate pristižu jedna po jedna, i u svakom trenutku zavod može da zatraži medijanu svega što je do tada prijavljeno. Napiši program koji odgovara na svako takvo pitanje.

Ulaz

U prvoj liniji ulaza je jedan ceo broj t - broj test primera.
U prvoj liniji svakog test primera je ceo broj q - broj operacija.
U svakoj od sledećih q linija je po jedna operacija, u jednom od dva oblika:

  • d x - prijavljena je nova plata x;
  • m - ispiši medijanu svih do tada prijavljenih plata u tom test primeru.

Prva operacija svakog test primera je sigurno oblika d x.

Izlaz

Za svaku operaciju m, redom kojim se operacije pojavljuju, ispiši u posebnoj liniji medijanu u tom trenutku, zaokruženu na jednu decimalu.

Primer

Input
1
6
d 5
d 7
d 6
m
d 8
m
Output
6.0
6.5

Kod prvog pitanja prijavljene plate su 5,7,6, što sortirano daje 5,6,7 - središnja je 6. Kod drugog pitanja to su 5,6,7,8, pa je medijana sredina dve središnje vrednosti, (6+7)/2=6.5.

Ograničenja

1≤t≤10
1≤q≤105
zbir svih q po test primerima ne prelazi 2⋅105
1≤x≤109


Zadatak je, uz dozvolu, preuzet iz zadatka Ažuriranje medijane, č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