Cod sursa(job #132319)

Utilizator ada_sAda-Mihaela Solcan ada_s Data 5 februarie 2008 16:53:00
Problema Castel Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
std::ifstream f1("castel.in");
std::ofstream f2("castel.out");
int main()
{
	int m, n, k, i, cheie[30000], cont;///20--->30000
	bool camere[30000], modif;
	f1>>m>>n>>k;
	for (i=1; i<=(n*m); i++)
	{
		f1>>cheie[i];
		camere[i]=0;
	}//for i
	camere[k]=1;
	modif=1;
	cont=1;
	while (modif)
	{
		modif=0;
		for (i=1; i<=(n*m); i++)
		{
			if (((i-n)>0)&&(camere[cheie[i-n]])&&(camere[i-n]==0))
			{
				camere[i-n]=1;
				modif=1;
				cont++;
			}//if
			if (((i+n)<=(n*m))&&(camere[cheie[i+n]])&&(camere[i+n]==0))
			{
				camere[i+n]=1;
				modif=1;
				cont++;
			}//if
			if ((i>1)&&(((i-1)%n)!=0)&&(camere[cheie[i-1]])&&(camere[i-1]==0))
			{
				camere[i-1]=1;
				modif=1;
				cont++;
			}//if
			if (((i+1)<=(n*m))&&(((i+1)%n)!=1)&&(camere[cheie[i+1]])&&(camere[i+1]==0))		  
			{
				camere[i+1]=1;
				modif=1;
				cont++;
			}//if
		}//for i
	}//while
	f2<<cont;
	f1.close();
	f2.close();
	return 0;
}//main