Pagini recente » Cod sursa (job #1512592) | Cod sursa (job #1340250) | Cod sursa (job #57051) | Cod sursa (job #1370285) | Cod sursa (job #2109995)
#include <iostream>
#include <queue>
#include <fstream>
using namespace std;
struct pct
{int x,y;};
queue <pct> C;
int main()
{
int M[177][177], N, L, p, q, x_start, y_start;
int di[4]={0,0,-1,1}, dj[4]={-1,1,0,0};
ifstream f("alee.in");
f>>N>>L;
for(int g=0;g<=N+1;g++)
{
M[N+1][g]=-1;
M[g][N+1]=-1;
M[0][g]=-1;
M[g][0]=-1;
}
for(int g=1;g<=L;g++)
{
f>>p>>q;
M[p][q]=-1;
}
f>>x_start>>y_start;
M[x_start][y_start]=1;
C.push ({x_start,y_start});
while(!C.empty())
{
int i=C.front().x;
int j=C.front().y;
for(int k=0;k<=3;k++)
{
int in=i+di[k];
int jn=j+dj[k];
if((M[in][jn]==0)||(M[in][jn]>M[i][j]+1))
{
M[in][jn]=M[i][j]+1;
C.push({in,jn});
}
}
C.pop();
}
ofstream g("alee.out");
f>>x_start>>y_start;
g<<M[x_start][y_start];
return 0;
}