Cod sursa(job #2054431)

Utilizator NToniBoSSNicolae Tonitza NToniBoSS Data 1 noiembrie 2017 22:53:14
Problema Rj Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.74 kb
#include <fstream>
ifstream fin("rj.in");
ofstream fout("rj.out");
char a[102][102];
int lee[102][102],f[102][102];
int cx[10001],cy[10001];
int dx[8]={-1,-1,-1,0,+1,+1,+1,0};
int dy[8]={-1,0,+1,+1,+1,0,-1,-1};
int main()
{
    int n,m,i,j,p,u,x1,y1,x2,y2,z,lmin,cmin,min;
    char cucu;
    fin>>n>>m;
    fin>>cucu;
    for(i=1; i<=n; i++)
        for(j=1; j<=m+1; j++)
            fin>>a[i][j];
    for(i=1; i<=n; i++)
        for(j=1; j<=m; j++)
            if(a[i][j]=='R')
                x1=i,y1=j;
            else
                if(a[i][j]=='J')
                    x2=i,y2=j;
    p=u=1;
    cx[1]=x1;
    cy[1]=y1;
    f[x1][y1]=1;
    a[x2][y2]=' ';
    while(p<=u)
    {
        for(i=0; i<8; i++)
            if(f[cx[p]+dx[i]][cy[p]+dy[i]]==0 && a[cx[p]+dx[i]][cy[p]+dy[i]]==' ')
                u++,cx[u]=cx[p]+dx[i],cy[u]=cy[p]+dy[i],f[cx[u]][cy[u]]=f[cx[p]][cy[p]]+1;
        p++;
    }
    p=u=1;
    cx[1]=x2;
    cy[1]=y2;
    lee[x2][y2]=1;
    a[x1][y1]=' ';
    cmin=lmin=200;
    min=500;
    /*for(i=1; i<=n; i++)
    {
        for(j=1; j<=m; j++)
            printf("%2d ",f[i][j]);
        printf("\n");
    }*/
    while(p<=u)
    {
        for(i=0; i<8; i++)
            if(lee[cx[p]+dx[i]][cy[p]+dy[i]]==0 && a[cx[p]+dx[i]][cy[p]+dy[i]]==' ')
                if(lee[cx[p]][cy[p]]+1<z)
                    u++,cx[u]=cx[p]+dx[i],cy[u]=cy[p]+dy[i],lee[cx[u]][cy[u]]=lee[cx[p]][cy[p]]+1;
        p++;
    }
    for(i=1; i<=n; i++)
        for(j=1; j<=m; j++)
            if(f[i][j]==lee[i][j] && f[i][j]<min && f[i][j]!=0)
            {
                min=f[i][j];
                lmin=i;
                cmin=j;
            }
    fout<<tmin<<" "<<lin<<" "<<col<<"\n";

    return 0;
}