$$ \newcommand{\floor}[1]{\left\lfloor{#1}\right\rfloor} \newcommand{\ceil}[1]{\left\lceil{#1}\right\rceil} \renewcommand{\mod}{\,\mathrm{mod}\,} \renewcommand{\div}{\,\mathrm{div}\,} \newcommand{\metar}{\,\mathrm{m}} \newcommand{\cm}{\,\mathrm{cm}} \newcommand{\dm}{\,\mathrm{dm}} \newcommand{\litar}{\,\mathrm{l}} \newcommand{\km}{\,\mathrm{km}} \newcommand{\s}{\,\mathrm{s}} \newcommand{\h}{\,\mathrm{h}} \newcommand{\minut}{\,\mathrm{min}} \newcommand{\kmh}{\,\mathrm{\frac{km}{h}}} \newcommand{\ms}{\,\mathrm{\frac{m}{s}}} \newcommand{\mss}{\,\mathrm{\frac{m}{s^2}}} \newcommand{\mmin}{\,\mathrm{\frac{m}{min}}} \newcommand{\smin}{\,\mathrm{\frac{s}{min}}} $$

Prijavi problem


Obeleži sve kategorije koje odgovaraju problemu

Još detalja - opišite nam problem


Uspešno ste prijavili problem!
Status problema i sve dodatne informacije možete pratiti klikom na link.
Nažalost nismo trenutno u mogućnosti da obradimo vaš zahtev.
Molimo vas da pokušate kasnije.

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.