XorTransform

Time limit: 0.75s
Memory limit: 512MB
Input: xortransform.in
Output: xortransform.out

Se dă o matrice de numere naturale cu NN linii și MM coloane. Prin intermediul unei transformări putem obține o altă matrice de NN linii și MM coloane astfel: fiecare element de coordonate (i,j)(i, j) cu 0i<N0 ≤ i < N, 0j<M0 ≤ j < M, din matricea nou obținută va fi egal cu suma xor a valorilor de la următoarele patru poziții (i,j)(i, j), (i+1,j)(i+1, j), (i,j+1)(i, j+1), (i+1,j+1)(i+1, j+1) din matricea inițială (dacă vreuna din pozițiile respective este în afara matricei, valoarea de la acea poziție se va considera 00).

Cerinţă

Dându-se o matrice cu NN linii și MM coloane, să se răspundă la întrebări de forma: care este valoarea de pe prima linie și prima coloană, dacă aplicăm KK transformări asupra matricei inițiale.

Interacțiune

Trebuie să implementați funcțiile

void initialize(int N, int M, int **matrice);

Funcția primește ca parametri dimensiunile matricei și matricea. Aceasta nu trebuie să returneze nimic.

int query(int K);

Funcția primește ca parametru valoarea KK pentru o întrebare, și trebuie să returneze răspunsul la întrebare, după cum este descris în enunț.
Interactorul va citi datele din fișierul de intrare xortransform.inxortransform.in și va afișa răspunsurile la funcția query în fișierul de ieșire xortransform.outxortransform.out în formatul observabil în exemplu.

Restricţii și precizări

  • 1N×M2 500 0001 ≤ N \times M ≤ 2\ 500\ 000
  • 1matrice[x][y]2301 ≤ matrice[x][y] ≤ 2^{30}, pentru orice 0x<N0 ≤ x < N și 0y<M0 ≤ y < M.
  • 1K1 000 000 0001 ≤ K ≤ 1\ 000\ 000\ 000
  • Funcția query va fi apelată de maxim 1 000 0001\ 000\ 000 de ori în cadrul unui test.

Exemplu

xortransform.in

4 5 3
9 8 1 3 6
1 2 5 2 5
3 4 3 7 7
7 8 3 5 1
3
18
100

xortransform.out

13
8
15

Explicații

Formatul datelor de intrare

N M Q
A0,0 A0,1 … A0,M-1
A1,0 A1,1 … A1,M-1
…
AN-1,0 AN-1,1 … AN-1,M-1
K1
K2
…
KQ

Problem info

ID: 1832

Editor: liviu

Author:

Source: Lot 2018 Baraj 2 Seniori: Problema 2

Tags:

Lot 2018 Baraj 2 Seniori

Attachments

Log in or sign up to be able to send submissions!