Pagini recente » Cod sursa (job #135212) | Cod sursa (job #1723070) | Cod sursa (job #2628871) | Cod sursa (job #866255) | Cod sursa (job #834241)
Cod sursa(job #834241)
#include<fstream>
using namespace std;
ifstream f("rj.in");
ofstream g("rj.out");
int dx[8]={-1,-1,-1,0,0,1,1,1},dy[8]={-1,0,1,-1,1,-1,0,1};
struct co{
int l,c;}c1[500],c2[500];
int a[101][101],x,xx,y,yy,i,j;
char A;
int main(){
int n,m,p1=1,p2=1,u1=1,u2=1,intalnit=1,cu2;
f>>n>>m;
f.get();
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
f.get(A);
if(A=='R'){
a[i][j]=0;
c1[1].l=i;
c1[1].c=j;}
if(A=='J'){
a[i][j]=0;
c2[1].l=i;
c2[1].c=j;}
if(A==' ')
a[i][j]=100000;
if(A=='X')
a[i][j]=99999;}
f.get();}
for(i=0;i<=n+1;i++)
a[0][i]=a[n+1][i]=99999;
for(j=0;j<=m+1;j++)
a[j][0]=a[j][m+1]=99999;
if(c1[1].l>c2[1].l || c1[1].l==c1[1].l && c1[1].c>c2[1].c){
while(intalnit==1){
int cu1=u1;
cu2=u2;
while(p1<=cu1){
x=c1[p1].l;
y=c1[p1].c;
for(i=0;i<=7;i++){
if(a[x+dx[i]][y+dy[i]]==100000){
u1++;
c1[u1].l=x+dx[i];
c1[u1].c=y+dy[i];
a[x+dx[i]][y+dy[i]]=a[x][y]+1;}
if(a[x+dx[i]][y+dy[i]]<0){
intalnit=0;
g<<-a[x+dx[i]][y+dy[i]]+1<<" "<<x+dx[i]<<" "<<y+dy[i];
i=8;}}
p1++;}}
if(intalnit==1){
while(p2<=cu2){
xx=c2[p2].l;
yy=c2[p2].c;
for(i=0;i<=7;i++){
if(a[xx+dx[i]][yy+dy[i]]==100000){
u2++;
c2[u2].l=xx+dx[i];
c2[u2].c=yy+dy[i];
a[xx+dx[i]][yy+dy[i]]=a[xx][yy]-1;}
if(a[xx+dx[i]][yy+dy[i]]>0 && a[xx+dx[i]][yy+dy[i]]!=99999){
intalnit=0;
g<<a[xx+dx[i]][yy+dy[i]]+1<<" "<<xx+dx[i]<<" "<<yy+dy[i];
i=8;}}
p2++;}}}
else
while(intalnit==1){
int cu1=u1;
int cu2=u2;
while(p2<=cu2){
xx=c2[p2].l;
yy=c2[p2].c;
for(i=0;i<=7;i++){
if(a[xx+dx[i]][yy+dy[i]]==100000){
u2++;
c2[u2].l=xx+dx[i];
c2[u2].c=yy+dy[i];
a[xx+dx[i]][yy+dy[i]]=a[xx][yy]-1;}
if(a[xx+dx[i]][yy+dy[i]]>0 && a[xx+dx[i]][yy+dy[i]]!=99999){
intalnit=0;
g<<a[xx+dx[i]][yy+dy[i]]+1<<" "<<xx+dx[i]<<" "<<yy+dy[i];
i=8;}}
p2++;}
if(intalnit==1){
while(p1<=cu1){
x=c1[p1].l;
y=c1[p1].c;
for(i=0;i<=7;i++){
if(a[x+dx[i]][y+dy[i]]==100000){
u1++;
c1[u1].l=x+dx[i];
c1[u1].c=y+dy[i];
a[x+dx[i]][y+dy[i]]=a[x][y]+1;}
if(a[x+dx[i]][y+dy[i]]<0){
intalnit=0;
g<<-a[x+dx[i]][y+dy[i]]+1<<" "<<x+dx[i]<<" "<<y+dy[i];
i=8;}}
p1++;}}}
return 0;}