U3t - Hľadanie pokladu (ťažký)Časový limit: 2s, Pamäťový limit: 64MiBProgramovací jazyk: JavaPočet bodov: 4 [ Pošli riešenie ] [ Tvoje riešenia ] [ Správne riešenia ] [ Vzorové riešenie ] ÚlohaDaná je mapa ostrova. Vypíšte najkratší čas za ktorý sa dá k pokladu dostať, alebo správu, že sa to nedá. Pohybovať sa dá do štyroch smerov – hore, dole, vpravo, vľavo. Pohyb z jedného políčka na druhé trvá jednu jednotku času. V tejto úlohe ešte predpokladajme, že plavecká výstroj sa považuje za zobratú po prejdení políčkom, na ktorom je. Po jej zobratí sa už dá prechádzať aj cez vodu. Okolo celého ostrova sa ešte nachádza voda, čiže plávať sa dá aj mimo mapy.VstupV prvom riadku sú dve čísla N a M určujúce veľkosť ostrova. Ďalej nasleduje N riadkov, každý z nich obsahuje M znakov. Znaky sú buď:
VýstupVýstupom je jedno číslo - najkratší čas, za ktorý sa dá dostať k pokladu alebo reťazec „impossible“ (bez úvodzoviek), ak sa k pokladu nedá nijako dostať.D11≤N≤50, 1≤M≤50D21≤N≤1000, 1≤M≤1000Príklad 1Vstup3 3 X@. ~~. P.. Výstup:4Vysvetlenie: Najprv prejdeme na políčko so znakom @ (výstroj). Potom už len preplávame cez vodu na druhú stranu. Zaberie nám to 4 jednotky času. Príklad 2Vstup9 9 ~~##P##~~ ~~~###### ####.X..# .@..#.#.# ....#.#.. ....#.### ..###.### ......#~~ ######.~~ Výstup25Vysvetlenie: Kedže teraz sa k pokladu nedá dostať suchou nohou, musíme zobrať výstroj, a potom preplávame po mori k pokladu. Príklad 3Vstup7 7 X...#@# .~~~~~# .~~~~~. .~~P~~. .~~~~~. .~~~~~. ....... VýstupimpossibleVysvetlenie: Poklad je uprostred jazera, no k výstroju sa nedá nijako dostať. Príklad 4Vstup7 5 X#..~ .#..~ .#.## ....@ ~~~~. ~~~## ~~..P Výstup12Úloha je prevzatá zo súťaže PALMA. |