Pagini recente » Cod sursa (job #1921661) | Cod sursa (job #2227045) | Cod sursa (job #3186146) | Cod sursa (job #2921852) | Cod sursa (job #293555)
Cod sursa(job #293555)
#include <stdio.h>
#define DIM 155
int a[DIM*DIM],lst[DIM][DIM*DIM],c[DIM*DIM*DIM],u[DIM*DIM];
int n,m,k,nrt=1;
void read ()
{
int i,j;
scanf ("%d%d%d",&n,&m,&k);
for (i=0; i<=n; ++i)
for (j=1; j<=m; ++j)
scanf ("%d",&a[m*i+j]);
}
void solve ()
{
int dc[4]={-1,1,-m,m};
int in=1,sf=1,i,t;
c[in]=k; u[k]=1;
for (i=0; i<4; ++i)
if (a[k+dc[i]]==k)
lst[k][++lst[k][0]]=k+dc[i];
while (in<=sf)
{
t=c[in++];
for (i=1; i<=lst[t][0]; ++i)
if (!u[lst[t][i]])
{
++nrt;
u[lst[t][i]]=1;
c[++sf]=lst[t][i];
}
for (i=0; i<4; ++i)
if (t+dc[i]>0 && t+dc[i]<=n*m)
if (!u[t+dc[i]])
if (u[a[t+dc[i]]])
{
++nrt;
u[t+dc[i]]=1;
c[++sf]=t+dc[i];
}
}
printf ("%d",nrt);
}
int main ()
{
freopen ("castel.in","r",stdin);
freopen ("castel.out","w",stdout);
read ();
solve ();
return 0;
}