Se consideră un tablou bidimensional format din linii și coloane, care conține celule libere codificate cu valoarea și celule blocate, codificate cu valoarea . jucători sunt poziționați în celule diferite ale matricei. Un jucător poate fi poziționat într-o celulă liberă sau într-o celulă blocată. Începând cu momentul , la fiecare moment întreg de timp , fiecare jucător colorează celulele libere aflate la distanța de poziția în care se află.
Definim distanța dintre două celule și ca fiind egală cu , unde și corespund indicilor liniilor pe care se află cele două celule, iar și corespund coloanelor.
Cerința
Scrieți un program care citește un număr natural , valorile matricei și pozițiile inițiale ale jucătorilor și afișează la ieșire răspunsul la întrebări de forma: “Care este primul moment de timp după care avem cel puțin celule colorate în matrice?”. În cazul în care pentru o întrebare nu se vor putea colora celule libere (după oricât de mult timp), se va afișa ca răspuns pentru acea întrebare valoarea .
Date de intrare
Prima linie conține numărul , iar fiecare din următoarele linii, câte numere separate prin câte un spațiu, corespunzând tipului celulelor de pe linia corespunzătoare din matrice.
Linia conține numărul de jucători , iar fiecare din următoarele linii câte două numere naturale, separate prin spațiu, reprezentând numărul liniei, respectiv, numărul coloanei în care se află fiecare din cei jucători.
Linia conține numărul natural , reprezentând numărul de întrebări, iar ultima linie conține numere naturale separate prin câte un spațiu, reprezentând valorile lui , pentru fiecare dintre cele interogări.
Întrucât volumul datelor de intrare este foarte mare, vă recomandăm, în cazul în care folosiți pentru citire biblioteca iostream din standardul C++, să adăaugați la începutul funcției main următoarele instrucțiuni:
std::ios_base::sync_with_stdio(false);
std::cin.tie(0);
Date de ieșire
Ieșirea constă într-o singură linie, care va conține numere, separate prin câte un spațiu, corespunzătoare răspunsurilor la întrebările date, în ordinea în care au fost citite.
Restricții și precizări
- Liniile și coloanele sunt indexate începând cu .
# | Punctaj | Restricții |
---|---|---|
1 | 12 | |
2 | 33 | |
3 | 21 | |
4 | 34 | Nu există restricții suplimentare |
Exemplu
stdin
8
0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 1 0 0 1 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 1
2
3 3
6 6
3
35 16 1000
stdout
2 1 -1
Explicație
După momentul de timp , se va colora doar celula . (Total: )
După momentul de timp , se vor mai colora în plus celulele , , , , , , , , , , , , , , . (Total: )
După momentul de timp , vom avea în total colorate de celule.
Pentru prima interogare, primul moment de timp după care avem cel puțin de celule colorate este .
Analog, pentru a doua interogare, răspunsul este .
Nu se vor putea colora niciodată de celule, răspunsul fiind .