Pe cămilă merg în față prin furtuna de nisip...
Robert s-a pierdut prin deșert, iar din cauza furtunii, el nu poate vedea la distanță.
Deșertul poate fi reprezentat ca o matrice cu linii și coloane. În fiecare celulă a matricei se află un tip de obiectiv (de exemplu, piramide, ruine labirintice, cactuși, dune) ce este reprezentat cu o literă mică a alfabetului englez.
Pentru a își da seama unde se află, Robert îi trimite mesaj lui Georgian cu ce tip de obiectiv vede în celula în care se află și se plimbă pentru a afla mai multe informații. Mai precis, acesta începe de pe o celulă oarecare, îi trimite lui Georgian litera celulei respective. El începe să se miște în celule adiacente ale celulei înspre nord, est, sud sau vest, iar de fiecare dată când intră într-o celulă vecină, îi trimite lui Georgian litera respectivă. Acesta poate trece de mai multe ori prin aceeași celulă și va trimite de fiecare dată mesaj lui Georgian.
Georgian observă că Robert este pus sub un blestem, și anume că pare să se plimbe în cercuri. Mai exact, șirul de caractere pe care îl trimite Robert este un șir de forma (stringul concatenat de ori).
Ajutați-l pe Georgian să își dea seama unde se află Robert!
Cerință
Dându-se matricea ce reprezintă harta deșertului, șirul de caractere și interogări , să se răspundă în câte poziții este plauzibil ca Robert să se afle știind că șirul de caractere primit de Georgian este . Este plauzibil ca Robert să se afle într-o celulă a matricei dacă există un drum de la o celulă oarecare la cea considerată ce nu iese din matrice, iar șirul de caractere descris de drum este egal cu .
Date de intrare
Fișierul de intrare piramida.in
conține pe primul rând două numere separate printr-un singur spațiu și ce reprezintă numărul de linii, respectiv coloane ale matricei date.
Pe următoarele rânduri se vor afla câte un șir de caractere de lungime ce reprezintă fiecare linie ale matricei date.
Pe rândul se va afla șirul de caractere .
Pe rândul se va afla un singur întreg ce reprezintă numărul de întrebări.
Pe următorul rând se vor afla întregi ce reprezintă întrebările la care trebuie să răspundă Georgian.
Date de ieșire
Fișierul de ieșire piramida.out
conține pe un singur rând răspunsurile în ordine la cele întrebări, separate prin câte un spațiu.
Restricții și precizări
- pentru de la la
- pentru de la la . Cu alte cuvinte, șirul este dat în ordine crescătoare.
# | Punctaj | Restricții |
---|---|---|
1 | 6 | , , |
2 | 13 | , |
3 | 10 | |
4 | 9 | |
5 | 16 | |
6 | 46 | Fără restricții suplimentare |
Exemplul 1
piramida.in
3 4
cbaz
azzz
bczz
abc
3
1 2 3
piramida.out
2 1 0
Explicație
În primul exemplu, la prima întrebare, Robert observă șirul de caractere abc
. Acesta se poate afla la sfârșit pe celula de pe prima linie și prima coloană sau pe celula de pe a treia linie și a doua coloană.
Astfel, răspunsul la prima întrebare este .
Pentru a doua întrebare, Robert observă șirul de caractere abcabc
. Asta înseamnă că acesta se poate afla la sfârșit pe celula de pe a treia linie și a doua coloană. Astfel, răspunsul este .
Pentru a treia întrebare, Robert observă șirul de caractere abcabcabc
. Nu există nicio celulă în care acesta s-ar putea afla în matrice, astfel răspunsul este (Robert este o cauză pierdută).
Exemplul 2
piramida.in
1 5
aabaa
aaab
2
1 2
piramida.out
1 1
Explicație
În al doilea exemplu, pentru prima întrebare, Robert observă șirul de caractere aaab
. Acesta poate începe fie de pe a doua coloană, fie de pe a patra coloană iar în final să ajungă în ambele cazuri pe a treia coloană. Răspunsul este astfel . A se observa că dacă începe de pe prima sau ultima coloană, nu există drum care să reflecte șirul de caractere transmis de Robert.
Pentru a doua întrebare, Robert observă șirul de caractere aaabaaab
. Toate drumurile valide pe care le va parcurge Robert vor ajunge în celula de pe a treia coloană. Astfel, răspunsul este .