Andrei a primit de la Moș Crăciun o consolă nouă.
Pentru că știe că îi plac jocurile de tip puzzle, tatăl său i-a făcut cadou jocul Labyrinth. Jocul are două nivele ce pot fi descrise astfel:
- Nivelul 1: Personajul se află într-un labirint cu linii și coloane și are misiunea de a ajunge dintr-o celulă specificată într-o altă celulă fără să treacă prin celulele în care se află monștri. La fiecare pas, personajul se poate deplasa doar în patru direcții: sus, jos, stânga, dreapta.
- Nivelul 2: Misiunea personajului se păstrează și la acest nivel, însă apare o modificare. Astfel, în unele celule, care nu sunt ocupate de monștri, se găsește câte o cheie. La acest nivel, pentru a-și putea îndeplini misiunea de a se deplasa de la la , personajul trebuie să treacă prin cel puțin o celulă ce conține o cheie.
Cerință
Cunoscând nivelul pe care îl joacă, determinați timpul minim în care Andrei poate termina misiunea știind că trecerea dintr-o celulă în alta durează o secundă.
Date de intrare
Pe prima linie a fișierului de intrare speedrun.in
se vor afla patru numere naturale, date în ordine:
- - nivelul pe care urmează să îl joace Andrei;
- , - dimensiunile labirintului, respectiv numărul de linii și coloane;
- - numărul de celule în care se găsesc chei.
Pe următoarea linie, vom găsi patru numere naturale , , , cu semnificația din enunț.
Pe următoarele linii ale fișierului, se vor găsi câte valori de sau separate prin câte un spațiu cu semnificația următoare:
- - celula este liberă;
- - în celulă se găsește un monstru.
Pe următoarele linii, se va găsi câte o pereche de valori reprezentând linia și coloana unei celule în care se găsește o cheie.
Date de ieșire
Pe prima linie a fișierului de ieșire speedrun.out
se va găsi, indiferent de nivelul jucat, un singur număr natural, reprezentând numărul minim de secunde pentru a finaliza misiunea.
Restricții și precizări
- numărul de monștri
- Pentru cerința 1, se garantează , și pentru cerința 2 vom avea .
- Va exista întotdeauna cel puțin o soluție.
- Se garantează .
- Cheile se vor afla mereu pe celule care nu conțin monștri.
- Se oferă puncte din oficiu.
Exemplul 1
speedrun.in
1 6 6 0
1 1 5 6
0 0 1 1 1 1
0 0 1 0 0 0
1 0 0 0 1 0
0 0 0 1 0 0
1 1 0 0 0 0
1 1 1 0 1 1
speedrun.out
9
Explicație
Un posibil traseu pentru personaj ce conduce la soluție va trece prin celulele următoare: , , , , , , , , , .
Exemplul 2
speedrun.in
2 6 6 1
1 1 5 6
0 0 1 1 1 1
0 0 1 0 0 0
1 0 0 0 1 0
0 0 0 1 0 0
1 1 0 0 0 0
1 1 1 0 1 1
4 6
speedrun.out
11
Explicație
Un posibil traseu pentru personaj ce conduce la soluție va trece prin celulele următoare: , , , , , , , , , , , .