Cod sursa(job #262810)

Utilizator enjoyzCojocaru Valentin enjoyz Data 19 februarie 2009 17:51:26
Problema Castel Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include<stdio.h>
FILE *f=fopen("castel.in","r");
FILE *g=fopen("castel.out","w");

int main()
{int i,j,v[100],M,N,K,p=1,q,ok,C[100],a[10][10],b[10][10],x,y;

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;}
			}

for(i=1;i<=p;i++) fprintf(g,"%d ",C[i]);
fclose(f);
fclose(g);
return 0;
}