Pagini recente » Cod sursa (job #1155406) | Cod sursa (job #978153) | Cod sursa (job #2124407) | Cod sursa (job #1597663) | Cod sursa (job #80686)
Cod sursa(job #80686)
#include<stdio.h>
struct matr{
long int a[102][102];
};
matr O,R1,J1,R2,J2,*RI,*RF,*JI,*JF,*AUX;
long int t,m,n,i,j,k,dx[10],dy[10],rr,jj;
char p[110],*pp;
int main()
{
FILE *f,*g;f=fopen("rj.in","r");g=fopen("rj.out","w");
fscanf(f,"%ld%ld",&m,&n);
dx[0]=-1;dx[1]=-1;dx[2]=-1;dx[3]=0;dx[4]=0;dx[5]=1;dx[6]=1;dx[7]=1;
dy[0]=-1;dy[1]=0;dy[2]=1;dy[3]=-1;dy[4]=1;dy[5]=-1;dy[6]=0;dy[7]=1;
pp=&p[0];fgets(pp,102,f);
for(i=1;i<=m;i++)
{ fgets(pp,102,f);
for(j=1;j<=n;j++)
{ if(p[j-1]=='X'){O.a[i][j]=1;}
else if(p[j-1]=='R'){R1.a[i][j]=1;}
else if(p[j-1]=='J'){J1.a[i][j]=1;}
}
}
RI=&R1;RF=&R2;JI=&J1;JF=&J2;
for(t=2;;t++)
{
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
if(!O.a[i][j])
{ rr=0;
for(k=0;k<=7;k++)
rr=RI->a[i+dx[k]][j+dy[k]]|rr;
RF->a[i][j]=rr;
jj=0;
for(k=0;k<=7;k++)
jj=JI->a[i+dx[k]][j+dy[k]]|jj;
JF->a[i][j]=jj;
if(rr&jj)
{ fprintf(g,"%ld %ld %ld",t,i,j);
fcloseall();
return 0;
}
}
AUX=RI;RI=RF;RF=AUX;
AUX=JI;JI=JF;JF=AUX;
}
}