Popis
vreme | memorija | ulaz | izlaz |
---|---|---|---|
2000 s | 512 Mb | standardni izlaz | standardni ulaz |
Ena radi u poznatom supermarketu koji je dobio ime po jednoj komutativnoj binarnoj operaciji na skupu realnih brojeva. Nedavno je supermarket obijen pa je potrebno izvršiti popis robe. Supermarket se može predstaviti kao matrica sa redova i kolona. Redovi i kolone su indeksirani od . U supermarketu se prodaje vrsta robe, koje označavamo brojevima od do . Ena je dobila zadatak da tokom nekih od narednih dana popiše neku pravougaonu podmatricu. Njoj je šef dao spisak od brojeva, gde označava da artikal pod rednim brojem treba u podmatrici da se nađe tačno puta. Enin zadatak je da za neku podmatricu odredi koliko vrsta artikala postoji tako da se taj artikal nalazi u toj podmatrici tačno puta, odnosno, koliko različitih vrednosti postoji tako da se broj pojavljuje tačno puta u podmatrici. Međutim, tu nije kraj Eninim mukama! Zli duhovi s vremena na vreme vade artikle sa nekih mesta u matrici i stavljaju neke druge artikle (tokom tih dana Ena ne mora da popisuje robu). Ena ima puno obaveza pa je ovaj zadatak poverila vama.
Opisi funkcija
Potrebno je da implementirate funkciju
koja treba da obradi sve upite i da smesti rešenja upita u niz . Matrica sadrži brojeve od do i opisuje početno stanje supermarketa. Nizovi opisuju upite. Ukoliko je , tog dana je zli duh ušao u supermarket i promenio artikal na poziciji u artikal sa rednim brojem . U suprotnom, ako je , tog dana Ena treba da popiše robu. Ako postoji upita koji označavaju da se roba popisuje, odgovore na ove upite upišite u istom redosledu u niz na pozicijama od do . Svi nizovi su indeksirani od 1.
Primer
Neka je , niz , a matrica je:
1 2 3 2 2 3 1 3 3 1 1 4
Prvog dana, Ena treba da popiše podmatricu od polja do polja , odnosno, podmatricu koja se sastoji od poslednje tri kolone. Ena vidi da se artikal nalazi tri puta, artikal se nalazi dva puta, artikal se nalazi puta i artikal se nalazi jednom u ovoj podmatrici. Od svih njih artikli se nalaze ispravan broj puta - artikal treba da se javi puta, a artikal treba puta, pa je odgovor . Drugog dana, zli duh menja artikal u donjem desnom uglu matrice u artikal , pa će sledećeg dana samo jedan artikal (sa rednim brojem ) da se nađe ispravan broj puta.
Ograničenja
- U upitima kod kojih je važi
- U ostalim upitima važi
Podzadaci
- Podzadatak 1 [7 poena]: .
- Podzadatak 2 [12 poena]: , nema zlih duhova.
- Podzadatak 3 [15 poena]: .
- Podzadatak 4 [17 poena]: .
- Podzadatak 5 [21 poen]: .
- Podzadatak 6 [28 poena]: Nema dodatnih ograničenja.
Detalji implementacije
Potrebno je da pošaljete tačno jedan fajl popis.cpp
ili popis.pas
, koji implementira pomenutu funkciju. Osim tražene funkcije, vaš fajl može sadržati i dodatne globalne promenljive, pomoćne funkcije i dodatne biblioteke.
U zavisnosti od programskog jezika koji koristite, vaša funkcija/procedura mora biti sledećeg oblika:
| Jezik | Deklaracija funkcije |
Morate biti ulogovani kako biste poslali zadatak na evaluaciju.