Cod sursa(job #1259615)

Utilizator BaweeLazar Vlad Bawee Data 10 noiembrie 2014 11:32:51
Problema Rj Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <cstdio>
#include <cctype>

FILE*f=fopen("rj.in","r");
FILE*g=fopen("rj.out","w");

int n,m,i,j,minn=99999;
int lx,cx,ly,cy;
int x[102][102],y[102][102];
char k[102];
void jale(int a[102][102],int l,int c,int val)
{
    a[l][c]=val;
    if(l+1<=n)
        if(a[l+1][c]==' ')  jale(a,l+1,c,val+1);
    if(l-1>=1)
        if(a[l-1][c]==' ')  jale(a,l-1,c,val+1);
    if(c+1<=m)
        if(a[l][c+1]==' ')  jale(a,l,c+1,val+1);
    if(c-1>=1)
        if(a[l][c-1]==' ')  jale(a,l,c-1,val+1);
}
int main()
{
    fscanf(f,"%d%d",&n,&m);
    fgets(k,2,f);
    for(i=1;i<=n;i++)
    {
        fgets(k,m+2,f);
        for(j=0;j<m;j++)
        {
            x[i][j+1]=y[i][j+1]=k[j];
            if(x[i][j+1]=='R')
                {lx=i;cx=j+1;}
            if(x[i][j+1]=='J')
                {ly=i;cy=j+1;}
        }
    }
    jale(x,lx,cx,100);
    jale(y,ly,cy,100);
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            if(x[i][j]>=100 and y[i][j]>=100)
                if(x[i][j]==y[i][j])
                    if(x[i][j]<=minn)
                        minn=x[i][j];
    fprintf(g,"%d\n",minn-100);

    return 0;
}