Gigel a intrat din nou în belele! El se află într-o matrice cu linii și coloane numerotate de la la și respectiv de la la . Asupra fiecărei celule acționează un vânt foarte puternic care îl împinge către una dintre celulele vecine. Mai exact, dacă la un moment dat Gigel se află în celula , vântul îl va "lua pe sus" și îl va purta astfel încât după o secundă să ajungă în celula vecină indicată de direcția vântului din celula curentă, după cum urmează:
N(Nord) ajunge în celulaS(Sud) ajunge în celulaE(Est) ajunge în celulaV(Vest) ajunge în celula
Fiecare celulă din matrice conține o livadă de meri ce produce mere, inițial . Gigel va colecta aceste mere de fiecare dată când ajunge în celula . De-a lungul timpului, direcția vântului se poate schimba în anumite celule, de asemenea cantitățile de mere din livezi se pot actualiza. Voi va trebui să răspundeți la o serie de interogări pentru a-l ajuta pe Gigel să afle câte mere ar colecta dacă s-ar lăsa pradă vântului pentru un număr dat de secunde. Avem astfel evenimente de trei tipuri:
1 i j d→ Actualizare vânt: Direcția vântului din celula devineN,S,E,V.2 l r val→ Actualizare mere din livadă: Toate livezile cu și vor produce cu mai multe mere.3 i j K→ Interogare: Dacă Gigel ar porni din celula și s-ar lăsa purtat de vânt prin matrice timp de exact secunde, câte mere ar colecta în total? Gigel va colecta inclusiv merele din celula din care începe, așadar el va colecta de fapt merele din celule. Deoarece acest număr poate fi foarte mare, se cere restul împărțirii lui la . Atenție! Dacă Gigel părăsește matricea la orice moment de timp pe parcursul zborului, acesta se încheie definitiv, iar răspunsul interogării se va considera .
Cerință
Să se răspundă corect la toate interogările asociate evenimentelor de tipul 3.
Date de intrare
Pe prima linie se află numerele , și , separate prin câte un spațiu. Pe următoarele linii se vor regăsi caractere , neseparate de spații, reprezentând direcțiile inițiale ale vântului din fiecare celulă din matrice. Fiecare dintre următoarele linii descrie câte un eveniment, în formatul de mai sus.
Date de ieșire
Se va afișa pe câte o linie răspunsul la fiecare interogare asociată unui eveniment de tip 3.
Restricții și precizări
- ;
- ;
- ;
- ;
- ;
N,S,E,V;- și pentru toate evenimentele de tipurile 1 și 3;
- pentru toate evenimentele de tipul 2;
- Liniile și coloanele sunt indexate de la 1;
- Interogările se consideră pe matricele curente de la pasul respectiv, ele nu se schimbă în timp ce Gigel este purtat de vânt.
| # | Punctaj | Restricții |
|---|---|---|
| 1 | 7 | |
| 2 | 9 | , |
| 3 | 11 | |
| 4 | 14 | și vântul nu este niciodată în direcția Nord |
| 5 | 11 | și toate evenimentele sunt interogări |
| 6 | 27 | și |
| 7 | 11 | |
| 8 | 10 | Fără restricții suplimentare |
Exemplul 1
wind.in
2 6 6
EEESES
NEEENE
3 1 1 9
3 1 2 5
2 3 4 10
3 1 3 4
1 2 4 V
3 1 2 5
wind.out
-1
35
63
88
Explicație
În continuare explicăm primul exemplu.
Starea Inițială
Datele de intrare specifică , și . Matricea inițială a merelor se calculează cu formula :
Matricea inițială a direcțiilor vântului este preluată direct din datele de intrare:
Evenimentul 1: 3 1 1 9
Tipul 3: Interogare traseu pornind din timp de secunde.
Traseul și Merele Colectate:
Explicație: După 9 secunde, Gigel părăsește matricea prin Est. Zborul se încheie.
Rezultat afișat:
Evenimentul 2: 3 1 2 5
Tipul 3: Interogare traseu pornind din timp de secunde.
Traseul și Merele Colectate:
Total Mere:
Evenimentul 3: 2 3 4 10
Tipul 2: Se adaugă câte mere în toate celulele de pe coloanele și .
Matricea Merelor Actualizată :
Evenimentul 4: 3 1 3 4
Tipul 3: Interogare traseu pornind din timp de secunde.
Traseul și Merele Colectate:
Total Mere:
Evenimentul 5: 1 2 4 V
Tipul 1: Se schimbă direcția vântului în celula în Vest (V).
Matricea Direcțiilor Actualizată :
Evenimentul 6: 3 1 2 5
Tipul 3: Interogare traseu pornind din timp de secunde.
Traseul și Merele Colectate:
Total Mere:
Exemplul 2
wind.in
3 4 10
EESV
NVES
EENN
3 1 1 2
3 1 1 1000000000
1 2 4 V
3 1 1 100
2 3 4 10
3 1 1 100
1 2 3 N
3 1 1 10
1 1 3 N
3 1 1 5
wind.out
6
1410065389
741
1731
136
-1