Cod sursa(job #362264)

Utilizator lovestospoogestan marsh lovestospooge Data 8 noiembrie 2009 18:57:14
Problema Barbar Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.31 kb
#include <stdio.h>

char dx[4]={-1, 0, 1, 0};
char dy[4]={0, 1, 0, -1};
int a[176][176];

void bordare()
{
   for (i=0;i<=n+1;i++)
	{
	 a[0][i]=-1;
	 a[i][0]=-1;
	 a[n+1][i]=-1;
	 a[i][n+1]=-1;
	}   
}

int lee()
{
  p=1; u=1;
  c[1][0]=x;
  c[1][1]=y;
  a[x][y]=-1;
  while (p<=u)
	{
	 la=c[p][0];
	 ca=c[p][1];
	 for (i=0;i<4;i++)
		{
		 lv=la+dx[i];
		 cv=ca+dy[i];

		 if(a[lv][cv]==0){
				  u++;
				  c[u][0]=lv;
				  c[u][1]=cv;
				  a[lv][cv]=-1;
				  if (lv==x1 && cv==y1){
				                        return 1;
				                        }
				  }

		}
	 p++;
	 }  
  return 0;
}   


void init(int nr)
{
 int i,j;   
     
 for(i=1;i<=r;i++)
    for(j=1;j<=c;j++)
         if(a[i][j]==nr || a[i][j]==-1) a[i][j]=0;
          
}     
     
int main()
{
 freopen("barbar.in","r",stdin);   
 freopen("barbar.out","w",stdout);
 
 scanf("%d %d", &r, &c);
 
 for(i=1;i<=r;i++)
    for(j=1;j<=c;j++)
         {
          scanf("%c", &ch);
          if(c=='*') a[i][j]=-2;
          else if(c=='D'){
                          dragoni++;
                          drag[dragoni][0]=i;
                          drag[dragoni][1]=j;
                          a[i][j]=-2
                          }
          }