Pagini recente » Cod sursa (job #1080230) | Cod sursa (job #34422) | Cod sursa (job #498346) | Cod sursa (job #413258) | Cod sursa (job #328999)
Cod sursa(job #328999)
#include<stdio.h>
FILE *f1,*f2;
long a,b,i,j,n,m,q,ma[302][302],fill[302][302];
int l1[10000],l2[10000],d1,d2,ok,li,ls,ii,jj;
long min(long x,long y){
if(x>y){
return y;
}
return x;
}
int main(){
f1=fopen("matrice2.in","r");
f2=fopen("matrice2.out","w");
fscanf(f1,"%ld%ld",&n,&q);
for(i=1;i<=n;i++){
for(j=1;j<=n;fscanf(f1,"%ld",&ma[i][j]),j++);
}
for(i=1;i<=q;i++){
for(ii=1;ii<=n;ii++){
for(jj=1;jj<=n;fill[ii][jj]=0,jj++);
}
fscanf(f1,"%d%d%d%d",&l1[1],&l2[1],&d1,&d2);
fill[l1[1]][l2[1]]=ma[l1[1]][l2[1]];
// fill[d1][d2]=ma[d1][d2];
li=0;
ls=1;
while(li<ls){
li++;
//sus
a=min(ma[l1[li]-1][l2[li]],fill[l1[li]][l2[li]]);
if(l1[li]>1&&fill[l1[li]-1][l2[li]]<a){
ls++;
l1[ls]=l1[li]-1;
l2[ls]=l2[li];
fill[l1[ls]][l2[ls]]=a;
}
//jos
a=min(ma[l1[li]+1][l2[li]],fill[l1[li]][l2[li]]);
if(l1[li]<n&&fill[l1[li]+1][l2[li]]<a){
ls++;
l1[ls]=l1[li]+1;
l2[ls]=l2[li];
fill[l1[ls]][l2[ls]]=a;
}
//stanga
a=min(ma[l1[li]][l2[li]-1],fill[l1[li]][l2[li]]);
if(l2[li]>1&&fill[l1[li]][l2[li]-1]<a){
ls++;
l1[ls]=l1[li];
l2[ls]=l2[li]-1;
fill[l1[ls]][l2[ls]]=a;
}
//dreapta
a=min(ma[l1[li]][l2[li]+1],fill[l1[li]][l2[li]]);
if(l2[li]<n&&fill[l1[li]][l2[li]+1]<a){
ls++;
l1[ls]=l1[li];
l2[ls]=l2[li]+1;
fill[l1[ls]][l2[ls]]=a;
}
}
fprintf(f2,"%ld\n",fill[d1][d2]);
}
return 0;
}