Marciuc este un băiat foarte neastâmpărat. El refuză să învețe informatică, așa că înainte de fiecare oră el pleacă pentru a explora noul său liceu. La plecare le promite colegilor lui că o să treacă pe la magazin înainte de a se întoarce în clasă, pentru a avea ce să mănânce în pauza următoare. Însă, dacă va ajunge în clasă în mai mult de T
secunde, va întarza la ora așa că în acest caz va folosi o ruta directă spre clasă
.
Liceul poate fi reprezentat sub forma unei matrice cu n
linii și n
coloane. Există 3
tipuri de celule:
- celulă liberă, pe unde băiatul poate avansa, o mutare durând o secundă;
- celulă ocupată de un zid, pe unde băiatul nu poate avansa;
- celulă în care se află o scurtătură, ce îl duce într-o secundă de la poziția,
x
1
y
1
, la pozițiax
2
y
2
sau invers;
Cerința
Fiind dat numărul n
de linii și de coloane, coordonatele celulelor ocupate de zid și coordonatele scurtăturilor, se cere să se afișeze numărul minim de secunde în care Marciuc reușește să ajungă în clasă, trecând și pe la magazin. Dacă magazinul nu este accesibil sau daca va ajunge în clasă in mai mult de T
secunde, atunci el nu va mai merge la magazin și se va afișa numărul minim de secunde în care acesta ajunge de la poziția lui la clasă. De asemenea, se va afișa și traseul folosit.
Date de intrare
Pe prima linie a fișierului liceu.in
se vor afla 4
numere naturale: n
– numărul de linii și de coloane ale matricei, z
– numărul de ziduri ce blochează calea băiatului, s
– numărul de scurtături și t
– numărul de secunde în care Marciuc poate ajunge în clasă dacă vrea să treacă și pe la magazin.
Pe următoarele Z
linii se află câte 2
numere reprezentânt coordonatele celulelor ocupate de zid.
Pe următoarele S
linii se află câte 4
numere naturale reprezentând coordonatele a două celule ce formează o scurtătură.
Pe ultima linie se află 2
numere ce reprezintă coordonatele magazinului.
Date de ieșire
Fișierul de ieșire liceu.out
va conține pe prima linie numărul minim de secunde în care băiatul ajunge în clasă, iar pe următoarele linii traseul complet al băiatului, celule fiind afișate în ordinea parcurgerii.
Restricții și precizări
1 ≤ n ≤ 400
5 ≤ z ≤ 100000
0 ≤ s ≤ 15500
- Poziția inițială a lui Marciuc este
1 1
, iar poziția clasei esten n
- Orice traseu de durată minimă este corect. Dacă băiatul poate merge pe la magazin, în traseu trebuie să apară obligatoriu coordonatele magazinului.
- Daca numărul minim de secunde este corect dar traseul nu este curect se acordă 40% din punctaj.
- Pentru teste în valoare de 20 de puncte,
s = 0
. - Pentru teste în valoare de 40 de puncte,
n ≤ 100
. - Marciuc poate trece de mai multe ori prin același loc.
- O celula surtătură poate fi folosită și ca o celula libera.
- Fiecare celulă are un singur tip. Nu există scurtături spre celule blocate; celulele
1 1
,n n
și celula pe care este situat magazinul, nu sunt blocate și nici scurtături. - O scurtatură poate fi traversată prin ambele sensuri.
Exemplul 1
liceu.in
5 5 2 10 1 5 3 3 4 5 5 2 2 2 3 1 5 4 4 4 1 2 4 4
liceu.out
6 1 1 1 2 4 3 4 4 5 4 5 5
Marciuc începe din celula 1 1
. De-acolo se deplasează până în celula 1 2
, de unde folosește scurtătura ca să ajungă la 4 3
. De la 4 3
se deplasează în celula 4 4
, unde este magazinul, iar de acolo se deplasează în celulele 5 4
, 5 5
, ajungând astfel în clasă
. În total, baiatul ajunge în clasă in 6
secunde, iar 6<=T
.
Exemplul 2
liceu.in
5 5 2 10 2 1 3 3 4 5 5 2 2 2 1 4 4 1 2 3 3 2 1 5
liceu.out
9 1 1 1 2 1 3 1 4 2 4 3 4 4 4 5 4 5 5
Dacă ar merge pe la magazin, Marciuc ar ajunge în clasă în 11
secunde. Dar 11>T
așa că alege să meargă direct la clasa. O să parcurga urmatorul drum: 1 1
, 1 2
, 1 3
, 1 4
, 2 4
, 3 4
, 4 4
, 5 4
, 5 5
. Puteam observa ca în celula 1 4
este o scurtătura dar Marciuc a preferat sa nu mearga prin ea. O să ajunge în clasă în 9
secunde.