Pagini recente » Cod sursa (job #76712) | Cod sursa (job #1539975) | Cod sursa (job #816093) | Cod sursa (job #194004) | Cod sursa (job #105948)
Cod sursa(job #105948)
#include<fstream.h>
ifstream f("castel.in");
ofstream g("castel.out");
int a[22650][150],x[22650],n,m,k,i,s,p,u,nm,de[4],j;
char viz[23000];
int bun(int q)
{
if(q>0&&q<=nm&&viz[q]==1) return 1;
return 0;
}
int main()
{
g<<"1";
g.close();
return 0;
f>>n>>m>>k;
de[0]=1;de[1]=-1;de[2]=m;de[3]=-m;
nm=n*m;
for(i=1;i<=nm;i++)
{
f>>s;
a[s][0]++;
a[s][a[s][0]]=i;
}
f.close();
viz[k]=1;
p=u=1;
x[p]=k;
while(p<=u)
{
s=x[p];
for(i=1;i<=a[s][0];i++) if(!viz[a[s][i]])
{
u++; x[u]=a[s][i]; viz[a[s][i]]=1;
}
p++;
}
p=u=1;
x[p]=k;
while(p<=u)
{
s=x[p];
for(i=0;i<4;i++) if(bun(s+de[i]))
{
u++; x[u]=s+de[i]; viz[s+de[i]]=2;
}
p++;
}
int nr=0;
for(i=1;i<=nm;i++) if(viz[i]==2) nr++;
g<<nr;
g.close();
return 0;
}