Pagini recente » Cod sursa (job #400191) | Cod sursa (job #2539776) | Cod sursa (job #2873975) | Cod sursa (job #881654) | Cod sursa (job #81554)
Cod sursa(job #81554)
#include <stdio.h>
int a[151][151],b[151][151],v[22802],n,m,x,y,i,j,s,k;
int main()
{FILE *fin,*fout;
fin=fopen("castel.in","r");
fscanf(fin,"%d %d %d",&m,&n,&k);
for (i=1;i<=m;i++)
for (j=1;j<=n;j++)
fscanf(fin,"%d",&a[i][j]);
fclose(fin);
if (k%n==0) {y=n;x=k/n;}
else {y=k%n;x=k/n+1;}
b[x][y]=1;
v[k]=1;
s=1;x=0;
while (x==0)
{x=1;
for (i=1;i<=m;i++)
for (j=1;j<=n;j++)
if (b[i][j]==1)
{if ((i>1)&&(v[a[i-1][j]]==1)&&(b[i-1][j]==0)) {b[i-1][j]=1;s++;v[(i-2)*n+j]=1;x=0;}
if ((i<n)&&(v[a[i+1][j]]==1)&&(b[i+1][j]==0)) {b[i+1][j]=1;s++;v[i*n+j]=1;x=0;}
if ((j>1)&&(v[a[i][j-1]]==1)&&(b[i][j-1]==0)) {b[i][j-1]=1;s++;v[(i-1)*n+j-1]=1;x=0;}
if ((j<m)&&(v[a[i][j+1]]==1)&&(b[i][j+1]==0)) {b[i][j+1]=1;s++;v[(i-1)*n+j+1]=1;x=0;}
}
}
fout=fopen("castel.out","w");
fprintf(fout,"%d",s);
fclose(fout);
return 0;
}