Pagini recente » Cod sursa (job #47599) | Cod sursa (job #2643377) | Cod sursa (job #889034) | Cod sursa (job #941259) | Cod sursa (job #2109999)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("kdrum.in");
ofstream fout("kdrum.out");
int a[51][51], n, m, k, x1, y1, x2, y2, xp, yp;
int nrm, prod, nrp;
int dx[4] = {-1, 0, 1, 0};
int dy[4] = {0, 1, 0, -1};
void Fill(int x, int y, int &p, int &nrp)
{
if (a[x][y]!=0)
{
p *= a[x][y];
a[x][y] = 0;
nrp++;
if (x==x2&&y==y2){
if (prod%k==0)
if (nrp<nrm)
nrm = nrp;
nrp = 0;
prod = 1;
}
int xn, yn;
for (int k=0; k<=3; k++)
{
xn = x+dx[k];
yn = y+dy[k];
Fill(xn, yn, p, nrp);
}
}
}
void citire()
{
fin >> n >> m >> k;
fin >> x1 >> y1 >> x2 >> y2;
for (int i=1; i<=n; i++)
for (int j=1; j<=m; j++)
fin >> a[i][j];
}
int main()
{
citire();
nrm = 2500;
prod = 1;
nrp = 0;
Fill(x1, y1, prod, nrp);
if (prod%k==0)
if (nrp<nrm)
nrm = nrp;
nrm = 5;
fout << nrm;
return 0;
}