Considerăm o matrice cu linii (numerotate de sus în jos de la la ) şi coloane (numerotate de la stânga la dreapta de la la ) care memorează doar valori şi . Mai mult, valorile egale cu sunt grupate în mai multe dreptunghiuri pline, care nu se învecinează nici pe linii, nici pe coloane, nici pe diagonale. În exemplul din fig. 1 matricea este corectă deoarece cele dreptunghiuri de nu se învecinează. În schimb în fig. 2 există dreptunghiuri de învecinate pe coloană şi două învecinate pe diagonală, deci matricea este incorectă.
Figura 1 din enunțul original al problemei Acces.Mărește schema ↗
În această matrice se pot face deplasări doar pe direcţiile Vest şi Nord în elemente egale cu , deci din poziţia se poate ajunge doar într-una din poziţiile şi , marcate cu . În acest fel, pornind de la o anumită poziţie, prin deplasări succesive, pot fi accesate un anumit număr de elemente ale matricei egale cu . De exemplu, în fig. 1, din poziţia pot fi accesate componente egale cu , iar din poziţia pot fi accesate componente egale cu .
Trebuie să răspundeţi la întrebări, fiecare întrebare fiind de forma: “Câte din elementele egale cu zero ale matricei pot fi accesate din poziţia ?”
Cerinţă
Scrieţi un program care să determine, pentru fiecare întrebare, câte elemente egale cu 0 din matrice pot fi accesate din poziţia precizată în cadrul întrebării.
Date de intrare
Pe prima linie a fişierului acces.in se află două numere naturale şi separate printr-un spaţiu, reprezentând numărul liniilor, respectiv numărul coloanelor matricei. Pe următoarele linii se găsesc câte cifre binare, separate prin câte un spaţiu, reprezentând elementele matricei. Pe linia următoare se află numărul natural , reprezentând numărul întrebărilor. Pe următoarele linii se găsesc câte două numere naturale şi , separate prin câte un spaţiu, reprezentând poziţia corespunzătoare unei întrebări.
Date de ieșire
Fişierul acces.out conţine linii. Pe linia se află un număr natural reprezentând răspunsul la cea de-a -a întrebare.
Restricții și precizări
- Pentru orice întrebare se garantează că valoarea corespunzătoare din matrice este .
- pentru toate testele, dreptunghiurile formate din valori de nu se învecinează
Exemplu
acces.in
5 7
0 0 0 0 1 1 1
0 1 1 0 1 1 1
0 1 1 0 0 0 0
0 1 1 0 1 0 0
0 0 0 0 1 0 1
4
2 4
5 4
4 7
3 1
acces.out
5
14
11
3
Explicație
Pentru prima întrebare, cele componente egale cu care pot fi accesate sunt cele din poziţiile .
Sursă și autori
ONI 2011, clasele 10. Dan Pracsiu.
Enunț din Kilonova, sub licența CC-BY-NC-SA-4.0, conform politicii sursei. Adaptări de prezentare și tipografie. Exemplele, formulele și figurile originale sunt păstrate.
Trimite o soluție
Setul original de teste și regulile de punctare sunt în curs de verificare. Trimiterea pentru evaluare va fi disponibilă după această verificare.
Se verifică autentificarea…