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

Maksimum promenljivog segmenta

EasyProblem #62
VremeMemorijaUlazIzlaz
1 s64 MBstdinstdout

Meteorološka služba drži n senzora poređanih duž planinskog puta, označenih brojevima od 0 do n−1, i svaki senzor javlja po jednu temperaturu.

Tokom dana se, iznova i iznova, dešavaju dve stvari:

  • prognozer pita koja je najviša temperatura koju javljaju senzori na nekoj deonici puta,
  • neki senzor se prekalibriše, pa se njegovo očitavanje zameni novim.

Napiši program koji odgovara na svako pitanje, koristeći očitavanja onakva kakva su u tom trenutku.

Ulaz

U prvoj liniji ulaza je jedan ceo broj t - broj test primera.
U prvoj liniji svakog test primera su dva cela broja n i q - broj senzora i broj događaja.
U drugoj liniji je n celih brojeva v0​,v1​,…,vn−1​ - očitavanja sa kojima senzori kreću.
U svakoj od sledećih q linija je po jedan događaj, u jednom od dva oblika:

  • a l r - ispiši najviše očitavanje među senzorima l,l+1,…,r;
  • b i x - senzor i je prekalibrisan, njegovo očitavanje postaje x.

Senzori su numerisani od 0, pa su l, r i i svi između 0 i n−1.

Izlaz

Za svaki događaj tipa a, redom kojim se događaji javljaju, ispiši u posebnoj liniji najviše očitavanje na toj deonici.

Primer

Input
2
6 6
3 1 4 1 5 9
a 0 5
a 1 3
b 2 7
a 1 3
b 5 -2
a 0 5
1 3
-5
a 0 0
b 0 10
a 0 0
Output
9
4
7
7
-5
10

U prvom test primeru očitavanja kreću kao 3,1,4,1,5,9. Ceo niz se penje do 9, a senzori od 1 do 3 drže 1,4,1, pa je njihov najviši 4. Senzor 2 se zatim prekalibriše na 7, čime isto pitanje daje odgovor 7. Na kraju senzor 5 pada na −2, niz postaje 3,1,7,1,5,−2, a njegov najviši je 7.

Ograničenja

1≤t≤10
1≤n≤105
1≤q≤105
−109≤vi​,x≤109
0≤l≤r≤n−1 i 0≤i≤n−1
Zbir n preko svih test primera ne prelazi 2⋅105, kao ni zbir q

Pošalji svoje rešenje

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

Prijavi se