Térkép

Egy térképet egy NxM-es mátrixban ábrázolunk. A városokat a mátrixban a 2-es számjegy, az utakat pedig az 1-es számjegy jelzi. A többi ponthoz tartozó érték 0. Az utak minden pontból a 4 szomszédos pont irányában folytatódhatnak, azaz átlósan lépni nem lehet. Egy város több 2-es értékű pontból is állhat, de két város sehol sem érintkezhet egymással, azaz nincs két szomszédos pontjuk.

Feladat:

Készíts programot, amely két város esetén megadja a városok területét (hány 2-es értékű pontból áll), valamint két a közöttük vezető legrövidebb út hosszát az alábbi háromféle módon:

ˇ          a legrövidebb az az út, ami a legkevesebb várost érinti a kiindulásin kívül;

ˇ          a legrövidebb út az az út, ami legkevesebb, egyik városhoz sem tartozó (1-es értékű) közbülső ponton halad át;

ˇ          a legrövidebb út az az út, amin a leggyorsabban el lehet érni a másik városba, feltételezve, hogy városban feleakkora a sebesség, mint a városok közötti utakon, azaz az 1-essel jelölt pontot 1, a 2-essel jelölt pontot pedig 2 időegység alatt lehet elhagyni.

Bemenet:

A TERKEP.BE állomány első sorában N és M értéke van (1<=N, M<=100), egy-egy szóközzel elválasztva. A további N sor mindegyike pontosan M számjegyet tartalmaz (csak 0, 1 vagy 2 lehet) szóközök nélkül, a térkép egyes sorai leírását. Az állomány utolsó sora két város indexeit ((X,Y) és (U,V)), azaz négy számot tartalmaz (1<=X, U<=M, 1<=Y, V<=N), s a feladat az (X,Y)-ból (U,V)-be vezető legrövidebb út megtalálása. Az első sor első (bal oldali) elemének koordinátái (1,1), az N. sor M. elemének pedig (N,M).

Kimenet:

A TERKEP.KI állományba négy sort kell írni. Az első sorban (X,Y), illetve az (U,V) pontot tartalmazó város területét kell írni, egy szóközzel elválasztva. A következő három sorban egyetlen szám szerepeljen: a feladatban szereplő három megfogalmazásbeli legrövidebb út hossza. Ha nincs út a két város között, akkor -1-et kell írni mindhárom sorba.

Példa:

TERKEP.BE

TERKEP.KI

9 10
2200000000
0200000000
0110000000
0010000000
0011200000
0001220000
0000211122
0000000122
0000000112
1 1 9 10

3 5
2
8
22

 

 

 

 

 

 

 

 

 

(Nemes Tihamér 2000. döntő)