C - CibulkyČasový limit: 2s, Pamäťový limit: 64MiBProgramovacie jazyky: Pascal, C, C++, Java, C++0x, Python 3Počet bodov: 1 [ Pošli riešenie ] [ Tvoje riešenia ] [ Správne riešenia ] [ Vzorové riešenie ] UlohaVasou ulohou je zistit, kolko paliva minie robot za jeden den. Na zaciatku dna sa robot nachadza na vychodzej pozicii. Potom dostava prikazy od pocitaca. Bud sa prikaz neda vykonat, vtedy ho robot ignoruje. Ak sa prikaz vykonat da (policko je dostupne a je to naozaj zahon), robot tam prejde a caka na dalsie prikazy. Robot musi chodit vzdy tou najkratsou cestou. Moze pritom chodit po ceste, alebo aj po zahonoch. Robot vie prejst z jedneho policka na druhe len ak susedia hranou (vie sa pohybovat do 4 smerov). Nesmie vojst na policko, na ktorom je plot. Prechod z jedneho policka na druhe stoji vzdy 1 mililiter paliva. Na konci dna sa robot presune nazad na vychodie policko. Robot nesmie vyjst mimo policka.VstupPrvy riadok vstupu obsahuje dve cele cisla N a M, vyska a sirka policka. 1 ≤ N,M ≤ 50. Dalsi riadok obsahuje dve cele cisla Y a X, suradnice vychodzieho policka robota. 1 ≤ Y ≤ N, 1 ≤ X ≤ M. Nasledujucich N riadkov obsahuje po M znakov. Znaky su bud # - plot, . - cesta, @ zahon s cibulkami. Dalej nasleduje cislo C, pocet prikazov, 1 ≤ C ≤ 50. Za nim nasleduje C riadkov obsahujucich cisla A a B, poziciu v ramci policka, kam sa ma robot presunut (nie kazda musi byt dosiahnutelna).VystupVypiste jediny riadok obsahujuci potrebne palivo v mililitroch.PrikladVstup:4 4 1 1 ..@. ..@@ #### @... 5 1 1 2 2 4 1 2 3 1 3 Vystup:6 Vysvetlenie:Prve dva prikazy robot ignoruje, lebo na zadanych poziciach je cesta. Treti prikaz tiez ignoruje, lebo sa na danu poziciu nemoze dostat. Stvrty prikaz vykona a spotrebuje pritom 3 mililitre paliva. Piaty prikaz vykona a spotrebuje 1 mililiter paliva. Nakoniec sa este musi presunut na vychodziu poziciu a na to potrebuje 2 mililitre paliva. Problem by Samuel BWPOW Kupka |