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

Sume segmenata promenljivog niza

EasyProblem #63
VremeMemorijaUlazIzlaz
0.5 s64 MBstdinstdout

Dat ti je niz od n celih brojeva, a zatim i spisak od m operacija koje treba redom izvršiti nad njim. Svaka operacija je jedne od dve vrste: ili menja jedan element, ili traži zbir uzastopnih elemenata na nekoj deonici.

Napiši program koji ispisuje odgovor na svako pitanje, koristeći niz onakav kakav je 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 m - dužina niza i broj operacija.
U drugoj liniji je n celih brojeva a0​,a1​,…,an−1​.
U svakoj od sledećih m linija je po jedna operacija, u jednom od dva oblika:

  • s i v - upiši (set) vrednost v na poziciju i;
  • q l r - ispiši (query) zbir elemenata na pozicijama l,l+1,…,r.

Pozicije se broje od 0, pa su i, l i r svi između 0 i n−1.

Izlaz

Za svaku operaciju q, redom kojim se operacije javljaju, ispiši u posebnoj liniji zbir te deonice.

Primer

Input
1
5 5
1 2 3 4 5
q 0 4
q 2 3
s 2 5
s 3 6
q 0 4
Output
15
7
19

Niz kreće kao 1,2,3,4,5, pa je zbir celog niza 15, a pozicije od 2 do 3 daju 3+4=7. Posle dve izmene niz je 1,2,5,6,5, čiji je zbir 19.

Ograničenja

1≤t≤10
1≤n≤105
1≤m≤105
0≤ai​≤10 i 0≤v≤10
0≤i≤n−1 i 0≤l≤r≤n−1
Zbir n preko svih test primera ne prelazi 2⋅105, kao ni zbir m


Zadatak je, uz dozvolu, preuzet iz zadatka Sume segmenata promenljivog niza, č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