Pagini recente » Cod sursa (job #327762) | Cod sursa (job #1443462) | Cod sursa (job #1901700) | Cod sursa (job #2663211) | Cod sursa (job #1653701)
#include <cstdio>
#include <algorithm>
#define x first
#define y second
#include <queue>
#define N 155
using namespace std;
int X,Y,n,m,i,j,pas=0,ajuns[N*N],a[N*N],k;
inline void Fill(int k)
{
ajuns[k]=1;
int v1,v2,v3,v4;
v1=k+1;
v2=k-1;
v3=k-m;
v4=k+m;
if(v1>0 && v1<=n*m && !ajuns[v1] && ajuns[a[v1]]) Fill(v1);
if(v2>0 && v2<=n*m && !ajuns[v2] && ajuns[a[v2]]) Fill(v2);
if(v3>0 && v3<=n*m && !ajuns[v3] && ajuns[a[v3]]) Fill(v3);
if(v4>0 && v4<=n*m && !ajuns[v4] && ajuns[a[v4]]) Fill(v4);
}
int main()
{
freopen("castel.in","r",stdin);
freopen("castel.out","w",stdout);
scanf("%d%d%d",&n,&m,&k);
int nr=0;
for(i=1;i<=n;++i)
for(j=1;j<=m;++j)
scanf("%d",&a[++nr]);
Fill(k);
int ans=0;
for(i=1;i<=n;++i)
for(j=1;j<=m;++j)
if(ajuns[i*m+j-m]) ++ans;
printf("%d\n",ans);
return 0;
}