Cod sursa(job #500307)

Utilizator myshuSpatariu Mihai-Constantin myshu Data 11 noiembrie 2010 21:01:02
Problema Rj Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.8 kb
#include<fstream.h>
typedef struct{int x,y;}POZ;
int main ()
{
	ifstream fcin("rj.in");
	ofstream fcout("rj.out");
	POZ r,ju;
	int i,j,n,m,a,b,k=0;
	char x;
	fcin>>n>>m;
	for(i=1;i<=n;i++)
		for(j=1;j<=m;j++)
			{fcin>>x;if(x=='R'){r.x=i;r.y=j;}
					 else if (x=='J'){ju.x=i;ju.y=j;}}
	if(r.x>ju.x)
		if(r.y>ju.y){a=r.x-ju.x;b=r.y-ju.y;
					 while(a>1&&b>1){r.x--;r.y--;ju.x++;ju.y++;a=a-2;b=b-2;k++;}
					 if(a==0&&b==0);
					 else if(a==1&&b==1){k++;r.y--;}
						 else if(a==1&&b==0){k++;r.x--;}
							  else if(a==0&&b==1){k++;r.y--;}
							       else if(b>1){r.y=r.y-b/2-b%2;r.x=r.x-a;k=k+b/2+b%2;}
										else if(a>1){r.x=r.x-a/2-a%2;r.y=r.y-b;k=k+a/2+a%2;}}
		else {a=r.x-ju.x;b=-r.y+ju.y;
					 while(a>1&&b>1){r.x--;r.y++;ju.x++;ju.y--;a=a-2;b=b-2;k++;}
					 if(a==0&&b==0);
					 else if(a==1&&b==1){k++;r.x--;}
						 else if(a==1&&b==0){k++;r.x--;}
							  else if(a==0&&b==1){k++;ju.y--;}
							       else if(b>1){r.y=r.y+b/2;r.x=r.x-a;k=k+b/2+b%2;}
										else if(a>1){r.x=r.x-a/2-a%2;r.y=r.y+b;k=k+a/2+a%2;}}
	else 
		if(r.y>ju.y){a=-r.x+ju.x;b=r.y-ju.y;
					 while(a>1&&b>1){r.x++;r.y--;ju.x--;ju.y++;a=a-2;b=b-2;k++;}
					 if(a==0&&b==0);
					 else if(a==1&&b==1){k++;r.y--;}
						 else if(a==1&&b==0){k++;}
							  else if(a==0&&b==1){k++;r.y--;}
							       else if(b>1){r.y=r.y-b/2-b%2;k=k+b/2+b%2;}
										else if(a>1){r.x=r.x+a/2;r.y=r.y-b;k=k+a/2+a%2;}}
		else {a=-r.x+ju.x;b=-r.y+ju.y;
					 while(a>1&&b>1){r.x++;r.y++;ju.x--;ju.y--;a=a-2;b=b-2;k++;}
					 if(a==0&&b==0);
					 else if(a==1&&b==1){k++;r.x--;}
						 else if(a==1&&b==0){k++;r.x--;}
							  else if(a==0&&b==1){k++;ju.y--;}
							       else if(b>1){r.y=r.y+b/2;k=k+b/2+b%2;}
										else if(a>1){r.x=r.x+a/2;k=k+a/2+a%2;}}
	fcout<<k<<' '<<r.x<<' '<<r.y<<'\n';
	return 0;
}