Pagini recente » Cod sursa (job #748577) | Cod sursa (job #1547530) | Cod sursa (job #1854477) | Cod sursa (job #1134492) | Cod sursa (job #519313)
Cod sursa(job #519313)
#include <stdio.h>
int n, m, k, i, j, inc, sf, cam, ok;
int co[22503], ad[5], nev[22503];
bool viz[22503];
void initializare()
{
ad[1]=-m; ad[2]=-1; ad[3]=1; ad[4]=m;
}
void citire()
{
scanf("%ld %ld %d",&n,&m,&k);
initializare();
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
scanf("%ld",&nev[(i-1)*m+j]);
}
void rezolvare()
{
co[1]=k;
viz[k]=true;
sf=1;
ok=1;
while (ok==1)
{
ok=0;
for (j=1;j<=sf;j++)
{
cam=co[j];
for (i=1;i<=4;i++)
if ((cam+ad[i]>0) and (cam+ad[i]<=n*m) and ((cam%m>0) or (i!=3)) and ((cam%m!=1) or (i!=2)))
if ((viz[nev[cam+ad[i]]]==true) and (viz[cam+ad[i]]==false))
{
ok=1;
sf++;
co[sf]=cam+ad[i];
viz[cam+ad[i]]=true;
}
}
}
printf("%ld",sf);
}
int main()
{
freopen("castel.in","r",stdin);
freopen("castel.out","w",stdout);
citire();
rezolvare();
return 0;
}