Cod sursa(job #1597348)

Utilizator musashi1Doros Doru-Lucian musashi1 Data 11 februarie 2016 21:54:47
Problema Rj Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.1 kb
#include<fstream>
#include<string>
using namespace std;
ifstream fin("rj.in");
ofstream fout("rj.out");
int main()
{
	static int n, m,rom[2][10404],jul[2][10404],r[102][102],y[102][102],b[102][102];
	fin >> n >> m;
	string s;
	getline(fin, s);
	for (int i = 1; i <= n; i++)
	{
		getline(fin, s);
		for (int j = 1; j <= m; j++)
		{
			if (s[j - 1] == 'R')

			{
				r[i][j] = 1; rom[0][0] = i; rom[1][0] = j;
			}
			if (s[j - 1] == 'J')
			{
				y[i][j] = 1; jul[0][0] = i; jul[1][0] = j;
			}
			if (s[j - 1] == 'X')
			{
				b[i][j] = 1;
			}
		}
	}
	int r1 = 0, r2 = 0;
	int nr = 2,nr2=2, min = 0, i1 = 0, i2 = 1,i22=1, i3 = 0, i4 = 1,i44=1;
	while (min==0)
	{

		int ii = rom[0][i1], jj = rom[1][i1];
		if (r[ii][jj] != 0 && r[ii][jj] == y[ii][jj])
		{
			r1 = ii;
			r2 = jj;
			min = r[ii][jj];
		}
		if (b[ii + 1][jj]==0 && r[ii+ 1][jj] == 0&&ii+1<=n)
		{
			rom[0][i2] = ii + 1; rom[1][i2] = jj; r[ii + 1][jj] = nr; i2++;
		}
		if (b[ii -1][jj]==0 && r[ii - 1][jj] == 0 && ii - 1>=1)
		{
			rom[0][i2] = ii - 1; rom[1][i2] = jj; r[ii - 1][jj] = nr; i2++;
		}
		if (b[ii][jj+1]==0 && r[ii][jj+1] == 0 && jj + 1 <= m)
		{
			rom[0][i2] = ii; rom[1][i2] = jj+1; r[ii][jj+1] = nr; i2++;
		}
		if (b[ii][jj - 1]==0 && r[ii][jj - 1] == 0 && jj - 1 >= 1)
		{
			rom[0][i2] = ii; rom[1][i2] = jj - 1; r[ii][jj - 1] = nr; i2++;
		}
		i1++;
		if (i1 == i22)
		{
			nr++; i22 = i2;
		}
		

		ii = jul[0][i3], jj = jul[1][i3];
		if (b[ii + 1][jj]==0 && y[ii+ 1][jj] == 0&&ii+1<=n)
		{
			jul[0][i4] = ii + 1; jul[1][i4] = jj; y[ii + 1][jj] = nr2; i4++;
		}
		if (b[ii -1][jj]==0 && y[ii - 1][jj] == 0 && ii - 1>=1)
		{
			jul[0][i4] = ii - 1; jul[1][i4] = jj; y[ii - 1][jj] = nr2; i4++;
		}
		if (b[ii][jj+1]==0 && y[ii][jj+1] == 0 && jj + 1 <= m)
		{
			jul[0][i4] = ii; jul[1][i4] = jj+1; y[ii][jj+1] = nr2; i4++;
		}
		if (b[ii][jj - 1]==0 && y[ii][jj - 1] == 0 && jj - 1 >= 1)
		{
			jul[0][i4] = ii; jul[1][i4] = jj - 1; y[ii][jj - 1] = nr2; i4++;
		}
		i3++;
		if (i3 == i44)
		{
			nr2++; i44 = i4;
		}
		
	}
	fout << r1 << " " << min - 1 << " " << r2 ;

}