Pagini recente » Cod sursa (job #384593) | Cod sursa (job #3037151) | Cod sursa (job #3212533) | Cod sursa (job #1333571) | Cod sursa (job #2074410)
#include <fstream>
using namespace std;
ifstream f ("kdrum.in");
ofstream g ("kdrum.out");
struct coada
{
int l,c,rest;
};
coada q[2502];
int n,m,i,a[100][100],j,k,b[100][100],xi,yi,xf,yf,xx,yy,p,u,x,y,nr,z;
int dx[4]={0,0,1,-1},dy[4]={1,-1,0,0};
int main()
{
f>>n>>m>>k>>xi>>yi>>xf>>yf;
for (i=1;i<=n;i++)
{
for (j=1;j<=m;j++)
{
f>>a[i][j];
}
}
b[xi][yi]=1;
q[1].l=xi;
q[1].c=yi;
q[1].rest=a[xi][yi]%k;
p=u=1;
while (p<=u)
{
x=q[p].l;
y=q[p].c;
for (i=0;i<4;i++)
{
xx=x+dx[i];
yy=y+dy[i];
if (xx==xf && yy==yf && (q[p].rest*a[xx][yy])%k==0)
{
nr=b[x][y]+1;
z=1;
break;
}
else if (a[xx][yy]!=0)
{
u++;
b[xx][yy]=b[x][y]+1;
q[u].l=xx;
q[u].c=yy;
q[u].rest=(q[p].rest*a[xx][yy])%k;
}
}
p++;
if (z==1) break;
}
g<<nr<<'\n';
return 0;
}