Pagini recente » Cod sursa (job #1923113) | Cod sursa (job #1959498) | Cod sursa (job #658881) | Cod sursa (job #1494634) | Cod sursa (job #586896)
Cod sursa(job #586896)
#include <fstream>
#include <queue>
using namespace std;
int l,c,d,k,i,j,n,m,ok,x1,x2,y1,y2,a[52][52];
typedef struct{int x,y,v,d;}coada;
coada x,y;
queue <coada> Q;
const int dx[4]={1,-1,0,0};
const int dy[4]={0,0,-1,1};
int main()
{
ifstream fi("kdrum.in");
ofstream fo("kdrum.out");
fi>>n>>m>>k;
fi>>x1>>y1>>x2>>y2;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
fi>>a[i][j];
x.x=x1;
x.y=y1;
x.v=a[x1][y1]%k;
x.d=1;
Q.push(x);
while(!Q.empty() and !ok)
{
x=Q.front();
Q.pop();
for(d=0;d<4;d++)
{
l=x.x+dx[d];
c=x.y+dy[d];
if(a[l][c]!=0)
{
y.x=l; y.y=c; y.v=(x.v*a[l][c])%k; y.d=x.d+1;
if(l==x2 and c==y2 and y.v==0)
{ ok=y.d; break; }
Q.push(y);
}
}
}
fo<<ok<<"\n";
return 0;
}