Matriks

vreme memorija ulaz izlaz
1 s 64 Mb standardni izlaz standardni ulaz

Prošlo je vreme igre, uživanja i razonode. Prošlo je vreme malih matrica. Danas su računari neverovatno brzi i mogu izvršiti i do komandi u sekundi. Iz tog razloga komisija vam je spremila jednostavan zadatak sa jednom matricom i mnogo interesantnih upita.

U ovom zadatku vam je data matrica dimenzije - matrica ima tačno vrsta i tačno kolona. Vrste su numerisane brojevima od do odozgo nadole a kolone su numerisane brojevima od do sleva udesno. Za svako () i () vrednost na poziciji () u matrici (tj. na polju u preseku -te vrste -te kolone) je definisana na sledeći način :

gde operacija predstavlja ekskluzivnu disjunkciju brojeva i .

Potrebno je odgovoriti na upita oblika: Naći vrednost -a svih brojeva u podmatrici matrice sa gornjim levim temenom i donjim desnim temenom . Podmatrica matrice sa navedenim ograničenjima obuhvata sve elemente takve da važi , .

Opis ulaza

U prvoj liniji standardnog ulaza nalaze se brojevi , broj vrsta matrice , broj kolona matrice i broj upita na koje je potrebno odgovoriti. Narednih linija sadrže po četiri broja, koji predstaljaju redom vrstu gornjeg levog temena podmatrice, kolonu gornjeg levog temena podmatrice, vrstu donjeg desnog temena podmatrice i kolonu donjeg desnog temena podmatrice.

Opis izlaza

Na standardnom izlazu u redova odgovoriti na upite opisane u tekstu zadatka, tačnije u -a liniji standardnog izlaza ispisati rešenje -tog upita.

Primer

Ulaz

4 5 3
1 1 3 3
2 3 4 5
2 3 2 4

Izlaz

0
7
7

Objašnjenje primera

Matrica A je dimenzije i ima oblik:

                  0 3 2 5 4
                  3 0 1 6 7
                  2 1 0 7 6
                  5 6 7 0 1

Prvi upit zadrži podmatricu sa gornjim levim temenom () i donjim desnim (). Rešenje ovog upita je svih brojeva u podmatrici, odnosno :

Treći upit sadrži samo dva broja i , tako da je rešenja za ovaj primer

Ograničenja

Podzadaci

Test primeri su podeljeni u četiri disjunktne grupe.

U primerima vrednim 20 poena važiće ograničenje .

U primerima vrednim 20 poena važiće ograničenje .

U primerima vrednim 30 poena važiće ograničenje .

U primerima vrednim 30 poena nema dodatnih ograničenja.

Napomena

Operator ekskluzivne disjunkcije u Pascal-u je označen sa xor, dok u C++ ga zapisujemo pomoću simbola ^. Ova operacija se za nenegativne cele brojeve definiše na sledeći način: prvo se brojevi zapišu u binarnom zapisu. Ukoliko jedan broj ima manje cifara od drugog, dopisuju mu se vodeće nule sve dok ne budu imali isti broj binarnih cifara. Tako se dobijaju dva niza binarnih cifara, označimo ih sa i . Zatim se za svaku poziciju računa pomoću sledećih pravila:

  • Za važi
  • Za važi
  • Za važi
  • Za važi

Niz binarnih cifara (koji možda ima vodeće nule) je binarni zapis rezultata, odnosno broja .

Morate biti ulogovani kako biste poslali zadatak na evaluaciju.