Cod sursa(job #2291634)

Utilizator PopescuLucianPopescu Lucian PopescuLucian Data 28 noiembrie 2018 13:09:30
Problema Rj Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include<fstream>
using namespace std;
ifstream fin("rj.in");
ofstream fout("rj.out");
int ma[200][200],a[40000],b[40000],q,l,z,i,j,ri,rf,jin,jf,n,m;
int main()
{
    fin>>n>>m;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
        {
            fin>>ma[i][j];
            if(ma[i][j]==-2)
            {
                ri=i;
                rf=j;
            }
            if(ma[i][j]==-3)
            {
                jin=i;
                jf=j;
            }
        }
    }
    int x[]={0,0,-1,1,-1,-1,1,1};
    int y[]={-1,1,0,0,-1,1,-1,1};
    a[++l]=ri;
    b[l]=rf;
    i=1;
    while(ma[jin][jf]==-3)
    {
        q=a[i];
        z=b[i];
        for(j=0;j<=7;j++)
        if(ma[q+x[j]][z+y[j]]==0)
        {
            l++;
            a[l]=q+x[j];
            b[l]=z+y[j];
            ma[q+x[j]][z+y[j]]=ma[q][z];
        }
        i++;
    }
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
        fout<<ma[i][j]<<" ";
        fout<<endl;
    }
    return 0;
}