Cod sursa(job #54986)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 26 aprilie 2007 09:10:21
Problema Castel Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<stdio.h>
int m,n,k,i,j,cit,x,y,w,sol,necx[152][152],necy[152][152],am[152][152],conect[152][152],ok;
int main()
{
	FILE *f,*g;
	f=fopen("castel.in","r");
	g=fopen("castel.out","w");
	fscanf(f,"%d%d%d",&m,&n,&k);
	for(i=1;i<=m;i++)
	for(j=1;j<=n;j++)
	{ fscanf(f,"%d",&cit);
	  necx[i][j]=(cit-1)/n+1;
	  necy[i][j]=(cit-1)%n+1;
	}
	x=(k-1)/n+1;y=(k-1)%n+1;
	am[x][y]=1;
	conect[x][y]=1;
	conect[x+1][y]=1;
	conect[x-1][y]=1;
	conect[x][y-1]=1;
	conect[x][y+1]=1;
	ok=1;sol=1;
	while(ok)
	{ ok=0;
	  for(i=1;i<=m;i++)
	   for(j=1;j<=n;j++)
	   { if(conect[i][j])
	      if(!am[i][j])
	       { x=necx[i][j];
		 y=necy[i][j];
		 if(am[x][y])
		  {am[i][j]=1;
		   conect[i+1][j]=1;
		   conect[i-1][j]=1;
		   conect[i][j-1]=1;
		   conect[i][j+1]=1;
		   ok=1;
		   sol++;
		  }
	     }
	  }
	}
	fprintf(g,"%d\n",sol);
	fcloseall();
	return 0;
}