Cod sursa(job #621547)

Utilizator MaverickChicinas T.Raul Maverick Data 16 octombrie 2011 20:16:11
Problema Rj Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.42 kb
using namespace std;
#include <fstream>
#include <iomanip>
ifstream fin("rj.in");
ofstream fout("rj.out");
int L,matrice[105][105],i,j,ds,k=0,sj,coada[2][10200];
char test;
short int Y[4]={-1,0,1, 0};
short int X[4]={ 0,1,0,-1};
int main()
{
	fin>>sj>>ds;
	j=i=1;
	fin.ignore();
	while(!fin.eof())
	{
			fin.get(test);
			if(test==' ')
			{
				j++;
			}
			else
				if(test=='X')
				{
					matrice[i][j]=-1;
					j++;
				}
				else
					if(test=='\n')
					{
						j=1;
						i++;
					}
					else
						if(test=='R')
						{
							matrice[i][j]=1;
							coada[0][k]=i;
							coada[1][k]=j;
							k++;
							j++;
						}
						else
							if(test=='J')
							{
								matrice[i][j]=1;
								coada[0][k]=i;
								coada[1][k]=j;
								k++;
								j++;
							}
		}
	fin.close();
	for(i=0;i<=ds+1;i++)
		matrice[0][i]=matrice[ds+1][i]=matrice[i][0]=matrice[i][ds+1]=-1;
	for(i=0;i<k;i++)
	{
		for(j=0;j<4;j++)
		if(matrice[coada[0][i]+Y[j]][coada[1][i]+X[j]]==0)
		{
			coada[0][k]=coada[0][i]+Y[j];
			coada[1][k]=coada[1][i]+X[j];
			k++;
			matrice[coada[0][i]+Y[j]][coada[1][i]+X[j]]=matrice[coada[0][i]][coada[1][i]]+1;
		}
		else
			if(matrice[coada[0][i]+Y[j]][coada[1][i]+X[j]]==matrice[coada[0][i]][coada[1][i]]+1)
			{
				fout<<matrice[coada[0][i]+Y[j]][coada[1][i]+X[j]]-1<<' '<<coada[0][i]+Y[j]<<' '<<coada[1][i]+X[j]<<'\n';
				return 0;
			}
	}
}