cubic

Time limit: 0.06s Memory limit: 64MB Input: cubic.in Output: cubic.out

Avem o jucărie formată din N×NN \times N pătrate de latură 11 dispuse ca într-o matrice cu NN linii și NN coloane. Liniile și coloanele matricei sunt numerotate de la 11 la NN, iar NN este mereu impar. Pătrățelele pot fi albe și le vom codifica 00, sau negre și le codificăm 11. Împărțim matricea în zone concentrice astfel: zona 11 este formată din linia 11, coloana NN, linia NN și coloana 11; zona 22 este formată din linia a 22-a, coloana N1N - 1, linia N1N - 1, coloana 22 etc. Sunt N2\lfloor \frac{N}{2} \rfloor astfel de zone. În mijlocul matricei este, evident, un singur element, NN fiind impar. Asupra oricărei zone putem aplica o operație de rotire, doar spre stânga. Iată în figura de mai jos efectul unei operații de rotire "de lungime" 33, asupra unei zone.

În figurile de mai jos culorile de fundal ale pătrățelelor au doar rolul de a pune în evidență zonele (cu gri închis este zona 11 și cu gri mai deschis zona 22). Dorim să aplicăm asupra jucăriei un set de rotiri așa încât "să rezolvăm jucăria". Asta înseamnă că toate pătrățelele de pe linia din mijloc și cele de pe coloana din mijloc să devină negre.

Observăm în figura din dreapta că linia 33 și coloana 33 sunt pline de 11. Pentru aceasta, am aplicat o rotire de lungime 22 asupra zonei 11 și o rotire de lungime 00 asupra zonei 22. Codificăm această soluție cu (2,02, 0). Altă soluție este cea codificată prin (2,22, 2).

Cerința

Dată fiind codificarea jucăriei, precum și "lungimea" maximă permisă pentru o rotire în oricare zonă, să se determine numărul de posibilități de a aplica rotiri asupra zonelor așa încât să rezolvăm jucăria. Evident, unei zone i se poate aplica o singură rotire, de lungime cuprinsă între 00 și valoarea maximă permisă.

Date de intrare

Fișierul cubic.in conține pe prima linie două numere NN și PP, separate printr-un spațiu, reprezentând dimensiunea jucăriei respectiv lungimea maximă permisă pentru rotirile din oricare zonă. Pe fiecare din următoarele NN linii se află câte NN numere care pot fi 00 sau 11, neseparate de spații.

Date de ieșire

Fișierul cubic.out conține pe prima linie numărul de posibilități de a aplica rotiri asupra zonelor, pentru a rezolva jocul. Două posibilități se consideră distincte dacă diferă prin lungimea rotirii din cel puțin o zonă. Pentru că acest număr poate fi foarte mare, se va afișa restul împărțirii lui la 9 9019 \ 901.

Restricții și precizări

  • 3N9993 \leq N \leq 999, NN este impar.
  • 0P100 0000 \leq P \leq 100 \ 000;

Exemplu

cubic.in

5 3
11001
00111
11111
11111
11111

cubic.out

4

Explicație

Soluțiile sunt (2,0)(2, 0), (3,0)(3, 0), (2,2)(2, 2), (3,2)(3, 2).

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