Pagini recente » Cod sursa (job #936120) | Cod sursa (job #2512182) | Cod sursa (job #2776583) | Cod sursa (job #208116) | Cod sursa (job #81524)
Cod sursa(job #81524)
#include <stdio.h>
int a[151][151],b[151][151],v[22501],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);
for (i=1;i<=m;i++)
for (j=1;j<=n;j++)
b[i][j]=0;
for (i=1;i<=n*m;i++) v[i]=0;
y=k%n;
x=k/n+1;
b[x][y]=1;
v[a[x][y]]=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;
}