Pagini recente » Cod sursa (job #583806) | Cod sursa (job #188614) | Cod sursa (job #23009) | Cod sursa (job #191851) | Cod sursa (job #639739)
Cod sursa(job #639739)
#include<stdio.h>
FILE*f=fopen("portal3.in","r");
FILE*g=fopen("portal3.out","w");
int i,j,q,n,m;
int v[5][5],viz[5];
inline int abs ( int j ){
if ( j < 0 )
return -j;
return j;
}
long long rec ( int x , int y ){
long long local_best = abs(x-n) + abs(y-m),comp;
for ( int i = 1 ; i <= 3 ; ++i ){
if ( !viz[i] ){
viz[i] = 1;
comp = rec(v[i][1],v[i][2]);
comp = comp + v[i][0] + abs(v[i][3]-x) + abs(v[i][4]-y);
if ( local_best > comp ) local_best = comp;
comp = rec(v[i][3],v[i][4]);
comp = comp + v[i][0] + abs(v[i][1]-x) + abs(v[i][2]-y);
if ( local_best > comp ) local_best = comp;
viz[i] = 0;
}
}
return local_best;
}
int main () {
fscanf(f,"%d",&q);
for ( i = 1 ; i <= q ; ++i ){
fscanf(f,"%d %d",&n,&m);
for ( j = 1 ; j <= 3 ; ++j ){
fscanf(f,"%d %d %d %d %d",&v[j][1],&v[j][2],&v[j][3],&v[j][4],&v[j][0]);
}
fprintf(g,"%lld\n",rec(0,0));
}
fclose(f);
fclose(g);
return 0;
}