Pagini recente » Cod sursa (job #1119067) | Cod sursa (job #74982) | Cod sursa (job #710263) | Cod sursa (job #2082450) | Cod sursa (job #262946)
Cod sursa(job #262946)
#include<stdio.h>
int C[100],v[100],a[10][10],b[10][10];
FILE *f=fopen("castel.in","r");
FILE *g=fopen("castel.out","w");
int main()
{int i,j,M,N,K,p=1,q,ok,x,y,aux;
fscanf(f,"%d %d %d",&M,&N,&K);
for(i=1;i<=M;i++)
for(j=1;j<=N;j++) fscanf(f,"%d",&a[i][j]);
for(i=1;i<=M;i++)
for(j=1;j<=N;j++) {b[i][j]=p;
p++;}
p=0;
q=0;
ok=1;
for(i=1;i<=M && ok==1;i++)
for(j=1;j<=N && ok==1;j++) if(b[i][j]==K) { C[++p]=b[i][j];
v[++q]=i;
v[++q]=j;
ok=0;
}
for(i=1;i<=p;i++)
for(j=1;j<=q;j=j+2) {x=v[j];
y=v[j+1];
if(a[x][y-1]==C[i]) {C[++p]=b[x][y-1];
v[++q]=x;
v[++q]=y;}
if(a[x][y+1]==C[i]) {C[++p]=b[x][y+1];
v[++q]=x;
v[++q]=y;}
if(a[x+1][y]==C[i]) {C[++p]=b[x+1][y];
v[++q]=x;
v[++q]=y;}
if(a[x-1][y]==C[i]) {C[++p]=b[x-1][y];
v[++q]=x;
v[++q]=y;}
}
do{ok=1;
for(i=1;i<=p-1;i++)
if(C[i]>C[i+1]) {aux=C[i];
C[i]=C[i+1];
C[i+1]=aux;
ok=0;}
}
while(ok==0);
for(i=1;i<=p;i++) if(C[i]!=C[i+1]) fprintf(g,"%d ",C[i]);
fclose(f);
fclose(g);
return 0;
}