Cod sursa(job #410824)

Utilizator taseTanase Alexandru tase Data 4 martie 2010 16:50:21
Problema Rj Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include<stdio.h>
int a[105][105]={0},b[105][105],u;
struct nod
{
	int l,c;
};
nod x,y,coada[10000];
void bfs()
{
	int dl[]={-1,-1,0,1,1,1,0,-1};
	int dc[]={0,1,1,1,0,-1,-1,-1};
	int p=0,i;
	bool k=true;
	
	x=coada[p];
	for(p=0;k==true;++p)
	{
		for(i=0;i<7;++i)
		{
			y.l=coada[p].l+dl[i];
			y.c=coada[p].c+dc[i];
			if(b[y.l][y.c]) 
			{
				printf("%d %d %d",b[y.l][y.c],y.l,y.c);
				k=false;
			}
			if(a[y.l][y.c]!=-1)
			{
				coada[u++]=y;
				b[y.l][y.c]+=b[x.l][x.c];
			}
		}
		x.l=y.l;
		x.c=y.c;
		p++;
	}
}
int main()
{
	freopen("rj.in","r",stdin);
	freopen("rj.out","w",stdout);
	int n,m,i,j;
	char s[105];
	scanf("%d%d\n",&n,&m);
	for(i=1;i<=n;++i)
	{
		//scanf("%c",&c);
		gets(s+1);
		for(j=1;j<=m;++j)
		{
			//scanf("%c",&c);
			if(s[j]=='X') a[i][j]=-1;
			if(s[j]=='R') {a[i][j]=1;b[i][j]=0;coada[u].l=i;coada[u++].c=j;}
			if(s[j]=='J') {a[i][j]=1;b[i][j]=0;coada[u].l=i;coada[u++].c=j;}
		}
	}
	bfs();
	return 0;
}