Cod sursa(job #2109999)

Utilizator IHateSemicolonNolocisem Etah IHateSemicolon Data 20 ianuarie 2018 11:59:35
Problema Kdrum Scor 0
Compilator cpp Status done
Runda evaluare_cex_sv_cls_x_2 Marime 1.11 kb
#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;
}