Cod sursa(job #458885)

Utilizator bam67Blidar Adrian Marian bam67 Data 26 mai 2010 19:42:47
Problema Rj Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include<fstream.h>
char s[101];
int a[101][101],i,j,n,m,w=1,e=0,g,yl,yj,yr,xr,xl,xj;
int main()
{ifstream f("rj.in");ofstream h("rj.out");f>>n>>m;

for(i=0;i<=n;i++)
{f.getline(s,100,'\n');
for(j=0;j<m;j++)
{if(s[j]==' ') a[i][j+1]=0;
if(s[j]=='X') a[i][j+1]=500;
if(s[j]=='R') {a[i][j+1]=1;xr=i;yr=j;}
if(s[j]=='J') {a[i][j+1]=-1;xj=i;yj=j;} }

}

/*for(i=1;i<=n;i++)
{for(j=1;j<=m;j++)
cout<<a[i][j]<<" ";
cout<<endl;}   */

do{
g=0;w++;
for(j=yr-w;j<=yr+w;j++)
{if(a[xr-w][j]==0) {g++;a[xr-w][j]=w;}
if(a[xr-w][j]==-(w-1)) {e=1;xl=xr+1-w;yl=j;}
if(a[xr+w][j]==0)  {g++;a[xr+w][j]=w;}
if(a[xr+w][j]==-(w-1)) {e=1;xl=xr-1+w;yl=j;} }

for(j=xr-w;j<=xr+w;j++)
{if(a[j][yr-w]==0) {g++;a[j][yr-w]=w;}
if(a[j][yr-w]==-(w-1)) {e=1;xl=j;yl=yr-w;}
if(a[j][yr+w]==0) {g++;a[j][yr-w]=w;}
if(a[j][yr+w]==-(w-1)) {e=1;xl=j;yl=yr-w;}}

for(j=yj-w;j<=yj+w;j++)
{
if(a[xj-w][j]==0)  {g++;a[xj-w][j]=w;}

if(a[xj+w][j]==0) {g++;a[xj+w][j]=w;}}

for(j=xj-w;j<=xj+w;j++)
{if(a[j][yj-w]==0) {g++;a[j][yj-w]=w;}
if(a[j][yj+w]==0)  {g++;a[j][yj+w]=w;} } }
while(g!=0 && e==0);


h<<a[xl][yl]<<" "<<xl<<" "<<yl;




return 0;}