Time limit: 3.5s
Memory limit: 1024MB
Input:
Output:
Se dă o matrice binară cu linii de la la și coloane de la la , respectiv întrebări independente, de forma : "Să presupunem că schimbăm în toți biții de din submatricea cu colțul stânga-sus pe linia și coloana și colțul dreapta-jos pe linia și coloana . Care e numărul total de linii și coloane ale noii matrice care mai au măcar un bit de ?"
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:
- numărul de linii ale matricei;
- numărul de linii ale matricei; se garantează că
- numărul de întrebări;
- matricea pe care se realizează interogările;
- vectorii conțin informațiile pentru întrebări; acești vectori au câte elemente.
Funcția va întoarce un vector STL ce conține cele numere cerute în rezultat, în ordine. Concurentul NU va implementa o funcție main
.
Subtask 1 (3 puncte)
Subtask 2 (11 puncte)
Subtask 3 (23 puncte)
- Toate submatricele din intrebari sunt patratice
Subtask 4 (24 puncte)
- Toate submatricele din intrebari sunt patratice
Subtask 5 (26 puncte)
Subtask 6 (13 puncte)
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