@{c++}#include <fstream>
#include <queue> // coada din stl
using namespace std;
ifstream fin(“roboti.in”);
ofstream fout(“roboti.out”);
const int di[] = {-1, 0, 1, 0}; /// vectorul directie pt i
const int dj[] = {0, 1, 0, -1}; /// vectorul directie pt j
struct pozitie {int i, j;};
int A10051005;
int B10051005;
int n, m, i1, j1, i2, j2;
queue<pozitie> Q;
/// verifica sa nu iesim din matrice
int inside(int i, int j)
{
return i >= 1 && i <= n && j >= 1 && j <= m;
}
void LEE
{
B[i][j] = 1; /// marchez in B pozitia de pornire
Q.push({i, j}); /// adaug in Q pozitia
while(!Q.empty()) /// cat timp mai sunt pozitii in Q
{
/// luam pozitia din fata cozii
i = Q.front().i;
j = Q.front().j;
Q.pop(); /// elimina elementul din fata cozii
for(int d = 0; d < 4; d++)
{
int iv = i + di[d], jv = j + dj[d]; /// calculeaza coordonatele vecinului
if(inside(iv, jv) && A[iv][jv]==0 && B[iv][jv] == 0)
{
/// daca pozitia este accesibila si nu am mai trecut pe acolo
B[iv][jv] = B[i][j]+1; /// cu un pas in plus
Q.push({iv, jv}); /// adauga in Q pozitia noua
}
}
}
}
int main()
{
fin >> n >> m;