Cod sursa(job #1144115)

Utilizator gbibBacotiu Gabi gbib Data 16 martie 2014 17:23:59
Problema Rj Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.54 kb
#include <fstream>
#include <cstring>

using namespace std;
int a[102][102];
int b[102][102];
int main()
{int n,i,j,xr,yr,xj,yj,x1r,y1r,x1j,y1j,pr,ur,pj,uj,m,xri,xji,yri,yji;
 struct poz {int l,c;};
 char ma[102];
 ifstream f("rj.in");
 ofstream g("rj.out");
 poz coadar[10201];
 poz coadaj[10201];
 f>>n>>m;
 int dl[8]={-1,-1,-1,0,1,1,1,0},dc[8]={-1,0,1,1,1,0,-1,-1};
 for (j=0;j<=n+1;j++)
  {a[0][j]=-1; b[0][j]=-1;}
 for (i=0;i<=m+1;i++)
  {a[i][0]=-1; b[i][0]=-1;}
  for (i=0;i<=m+1;i++)
  {a[i][m+1]=-1; b[i][m+1]=-1;}
  for (j=0;j<=n+1;j++)
  {a[n+1][j]=-1; b[n+1][j]=-1;}

 for(i=0;i<=n;i++)
    {f.getline(ma,102);
    for(j=0;j<=m;j++)
    {if(ma[j]=='R'){xr=i; yr=j+1; xri=i; yri=j+1; a[i][j+1]=1; }
     if(ma[j]=='J'){xj=i; yj=j+1; xji=i; yji=j+1; b[i][j+1]=1;}
     if(ma[j]=='X') {a[i][j+1]=-1; b[i][j+1]=-1;}
    }
    }
 coadar[0].l=xr;
 coadar[0].c=yr;
 coadaj[0].l=xj;
 coadaj[0].c=yj;
 pr=0;
 ur=0;
 pj=0;
 uj=0;
 while (pr<=ur||pj<=uj)
 {
  xr=coadar[pr].l; yr=coadar[pr].c;
  pr++;
  for (i=0;i<8;i++)
  {x1r=xr+dl[i]; y1r=yr+dc[i];
   if (a[x1r][y1r]==0)
   {a[x1r][y1r]=a[xr][yr]+1;
    ur++;
    coadar[ur].l=x1r; coadar[ur].c=y1r;
   }
  }
  xj=coadaj[pj].l; yj=coadaj[pj].c;
  pj++;
  for (i=0;i<8;i++)
  {x1j=xj+dl[i]; y1j=yj+dc[i];
   if (b[x1j][y1j]==0)
   {b[x1j][y1j]=b[xj][yj]+1;
    uj++;
    coadaj[uj].l=x1j; coadaj[uj].c=y1j;
   }
  }
 }

 for(i=1;i<=n;i++)
     for(j=1;j<=m;j++)
         if(a[i][j]==b[i][j]&&a[i][j]>0) {g<<a[i][j]<<" "<<i<<" "<<j; j=999;}

 return 0;
}