Petic

Time limit: 3.5s Memory limit: 1024MB Input: Output:

Se dă o matrice binară cu linii de la 00 la nrLin1nrLin - 1 și coloane de la 00 la nrCol1nrCol - 1, respectiv QQ întrebări independente, de forma X1,Y1,X2,Y2X_1, Y_1, X_2, Y_2: "Să presupunem că schimbăm în 00 toți biții de 11 din submatricea cu colțul stânga-sus pe linia X1X_1 și coloana Y1Y_1 și colțul dreapta-jos pe linia X2X_2 și coloana Y2Y_2. Care e numărul total de linii și coloane ale noii matrice care mai au măcar un bit de 11?"

Protocol de interacțiune

Concurentul va implementa funcția solve, cu următoarea semnătură:

std::vector<int> solve (int nrLin, int nrCol, int Q, 
						std::vector<std::string> matrix,
						std::vector<int> X1, std::vector<int> Y1, 
						std::vector<int> X2, std::vector<int> Y2);

Parametrii acestei funcții au următoarea semnificație:

  • nrLinnrLin numărul de linii ale matricei;
  • nrColnrCol numărul de linii ale matricei; se garantează că 1nrLinnrCol1 \le nrLin \le nrCol
  • QQ numărul de întrebări;
  • matrixmatrix matricea pe care se realizează interogările;
  • vectorii X1,Y1,X2,Y2X1, Y1, X2, Y2 conțin informațiile pentru întrebări; acești vectori au câte QQ elemente.

Funcția va întoarce un vector STL ce conține cele QQ numere cerute în rezultat, în ordine. Concurentul NU va implementa o funcție main.

Subtask 1 (3 puncte)

  • 1nrCol1001 \le nrCol \le 100
  • 1Q1 0001 \le Q \le 1\ 000

Subtask 2 (11 puncte)

  • 1nrCol4001 \le nrCol \le 400
  • 1Q100 0001 \le Q \le 100\ 000

Subtask 3 (23 puncte)

  • Toate submatricele din intrebari sunt patratice (X2X1=Y2Y1)(X_2 - X_1 = Y_2 - Y_1)
  • 1nrCol1 0001 \le nrCol \le 1\ 000
  • 1Q1 000 0001 \le Q \le 1\ 000\ 000

Subtask 4 (24 puncte)

  • Toate submatricele din intrebari sunt patratice (X2X1=Y2Y1)(X_2 - X_1 = Y_2 - Y_1)
  • 1nrCol1 8001 \le nrCol \le 1\ 800
  • 1Q1 500 0001 \le Q \le 1\ 500\ 000

Subtask 5 (26 puncte)

  • 1Q,nrLinnrCol400 0001 \le Q, nrLin \cdot nrCol \le 400\ 000

Subtask 6 (13 puncte)

  • 1nrLinnrCol3 240 0001 \le nrLin \cdot nrCol \le 3\ 240\ 000
  • 1Q1 500 0001 \le Q \le 1\ 500\ 000

Exemple

Input

2 2 5
11
01
0 0 1 1
0 0 0 0
0 1 0 1
1 0 1 0
1 1 1 1

Output

0
3
4
4
3

Input

2 3 8
100
111
0 0 1 1
0 0 0 0
1 0 1 0
0 1 1 2
0 1 0 1
1 1 1 1
0 2 0 2
1 2 1 2

Output

2
4
5
3
5
4
5
4

Input

1 2 1
01
0 0 0 1

Output

0

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