Cod sursa(job #92192)
#include<stdio.h>
int a[16000],n,m,k,cheie[10000],camera[10000],nr=0;
const short l[5]={0,0,1,-1};
const short c[5]={1,-1,0,0};
void citire()
{
freopen ("castel.in","r",stdin);
scanf ("%d",&n);
scanf ("%d",&m);
scanf ("%d",&k);
for (int i=1;i<=n*m;i++)
scanf ("%d",&a[i]);
fclose(stdin);
cheie[a[k]]=1;
camera[k]=1;
}
void numarere(){
short ok=0;
while (ok==0)
{
ok=1;
for (int i=1;i<n*m;i++)
if (camera[i]==1)
{
if (cheie[a[i+1]]==1&&camera[i+1]==0){
camera[i+1]=1;
ok=0;
cheie[i+1]=1;
}
if (cheie[a[i-1]]==1&&camera[i-1]==0){
camera[i-1]=1;
ok=0;
cheie[i-1]=1;
}
if (cheie[a[i+m]]==1&&camera[i+m]==0){
ok=0;
camera[i+m]=1;
cheie[i+m]=1;
}
if (i>m&&cheie[a[i-m]]==1&&camera[i-m]==0){
ok=0;
camera[i-m]=1;
cheie[i-m]=1;
}
}
}
}
int main(){
citire();
freopen("castel.out","w",stdout);
numarere();
long S=0;
for (int i=1;i<=n*m;i++)
S+=camera[i];
printf("%ld",S);
printf("\n");
fclose(stdout);
return 0;
}