Jill Bates kerékpározik

Jill Bates nem szeret hegyet mászni. Jill mindenhova kerékpárral megy, de mindig a lehető legkönnyebb és legrövidebb utat igyekszik választani. A jó hír az, hogy Jill Greenhillsben lakik, ahol minden út egy derékszögű rács mentén épült ki. A Kelet-Nyugat irányú utat utcának, az Észak-Dél irányú utat sugárútnak nevezzük. Bármely két szomszédos kereszteződés távolsága egyenlő. A rossz hír az, hogy Greenhillsben sok a hegy, és sok az egyirányú utca. Jill az útvonal kiválasztásánál az alábbi három szabályt alkalmazza.

1. Elkerüli a 10 méternél nagyobb emelkedést a szomszédos kereszteződések (rácspontok) között!
2. Soha nem megy forgalommal szemben az egyirányú utcákban!
3. A lehető legrövidebb útvonalat választja!

Írjunk programot, amely segít Jillnek egy elfogadható útvonal megtalálásában!

Bemenet:

Az input állomány a következő formátumban tartalmazza az adatokat:

ˇ         Az első sor két egész számot tartalmaz. Az első egész n; az utcák száma, a második egész m; a sugárutak száma. (1<=n<=20, 1<=m<=20)

ˇ         A következő n sor a kereszteződések magasságait tartalmazza. Minden sor egy utcát reprezentál, és pontosan m egészet tartalmaz. Ezek az egészek az adott utcán lévő kereszteződések méterben mért magasságai.

ˇ         Ezek után egy vagy több sor következik, amelyek az egyirányú utcákat definiálják. Minden ilyen definíció két pár egész számot tartalmaz, az utca sugárút utca sugárút formátumban. Az első pár az utca kezdő-, a második pár az utca végpontját definiálja. Minthogy Greenhills egy szigorú négyzetrács szerint épült, ezért ha a két pont nem szomszédos, akkor az utca a közbülső rácspontokon (útkereszteződéseken) is átmegy. Például az

5 7 5 8
5 8 5 9
5 9 5 10

sorozat reprezentálja az 5-7-től 5-8-ig, 5-8-tól 5-9-ig, 5-9-től 5-10-ig tartó egyirányú utcákat. Az egyirányú utcák felsorolását négy darab 0 zárja a fenti formátumban.

ˇ         Végül egy vagy több sor következik, amelyek mindegyike két rácspontot tartalmaz az utca sugárút utca sugárút formátumban. Az első pár Jill útjának kezdő-, a második végpontjának koordinátái. Az inputot négy darab 0 zárja.

Feltehetjük, hogy az utcák és sugárutak koordinátái a fent definiált határok között vannak, valamint hogy az utak definíciói szigorúan Észak-Dél, illetve Kelet-Nyugat irányúak.

Kimenet:

Az input állomány minden kezdőpont-végpont párjára írassuk ki egy, a szabályoknak megfelelő útvonal rácspontjait! A rácspontot az 'utca-sugárút' formában írjuk ki, az egyes rácspontokat pedig a '->' karakterekkel kössük össze! Ha Jill szabályainak több útvonal is megfelel, akkor elegendő egyet kiíratnunk. Ha nincsen a szabályoknak megfelelő útvonal, vagy a kezdőpont egybeesik a végponttal, akkor egy erre figyelmeztető szöveget írassunk ki! Minden útvonalleírás után egy üres sornak kell szerepelnie!

Példa:

INPUT.TXT

OUTPUT

3 4

10 15 20 25

19 30 35 30

10 19 26 20

1 1 1 4

2 1 2 4

3 4 3 3

3 3 1 3

1 4 3 4

2 4 2 1

1 1 2 1

0 0 0 0

1 1 2 2

2 3 2 3

2 2 1 1

0 0 0 0

1-1->1-2->1-3->1-4->2-4->2-3->2-2 

 

2-3->2-3: Maradj helyben!

 

Nincs 2-2->1-1 út.

 

 

(ACM döntő 1995)