Sunteți pe pagina 1din 1

Caroiaj

Se consideră un caroiaj dreptunghiular cu n linii şi m coloane, în care pe anumite poziţii sunt plasate
obstacole. În poziţia iniţială (x0,y0) se află plasat un mobil. Să se determine, pentru toate poziţiile în care
mobilul poate ajunge, distanţa minimă de la poziţia iniţială a mobilului, măsurată în deplasări elementare.
Prin deplasare elementară se înţelege deplasarea mobilului cu o poziţie stânga, dreapta, sus sau jos.

Cerinţă

Dându-se dimensiunile caroiajului, poziţia de start a mobilului, precum şi poziţiile obstacolelor, să se


determine distanţa minimă de la poziţia iniţială a mobilului la toate poziţiile în care acesta poate ajunge.

Date de intrare
Fişierul de intrare caroiaj.in conţine pe prima linie numărul de linii şi numărul de coloane ale caroiajului, pe a
doua linie conţine poziţia mobilului dată prin linia şi coloana pe care acesta se află, iar pe următoarele linii se
află obstacolele date prin perechi de numere reprezentând linia respectiv coloana pe care acestea se află.

Date de ieşire

Fişierul de ieşire caroiaj.out conţine caroiajul dreptunghiular cu n linii şi m coloane definit astfel:
- a[i][j] = -1, dacă poziţia (i,j) este obstacol;
- a[i][j] = -2, dacă poziţia (i,j) nu este accesibilă din poziţia initial a mobilului;
- a[i][j] = d, unde d este distanţa minima de la poziţia initial a mobilului la (i,j).

Restricţii

N,M ≤ 10

Exemple

caroiaj.in caroiaj.out
5 5 -2 -1 -1 5 4
3 3 -1 2 1 -1 3
1 2 2 1 0 1 2
1 3 3 2 -1 -1 3
2 4 4 3 4 5 4
4 3
4 4
2 1

S-ar putea să vă placă și