Pagini recente » Cod sursa (job #2435023) | Cod sursa (job #1987497) | Cod sursa (job #2606565) | Cod sursa (job #2930065) | Cod sursa (job #1564366)
#include <stdio.h>
long long xk1[3], yk1[3], xk2[3], yk2[3], c[3], dist[3];
inline long long myabs(long long x){
return x < 0 ? -x : x;
}
int main(){
FILE *in = fopen("portal3.in", "r");
FILE *out = fopen("portal3.out", "w");
long long t, n, m, i, j, x, k, rez;
fscanf(in, "%lld", &t);
for(; t > 0; t--){
fscanf(in, "%lld%lld", &n, &m);
for(i = 0; i < 3; i++){
fscanf(in, "%lld%lld%lld%lld%lld", &xk1[i], &yk1[i], &xk2[i], &yk2[i], &c[i]);
dist[i] = xk1[i] + yk1[i];
}
rez = n + m;
for(k = 0; k < 4; k++){
for(i = 0; i < 3; i++){
for(j = 0; j < 3; j++){
x = dist[i] + c[i] + myabs(xk2[i] - xk1[j]) + myabs(yk2[i] - yk1[j]);
if(x < dist[j])
dist[j] = x;
}
x = n - xk2[i] + m - yk2[i] + c[i] + dist[i];
if(rez > x)
rez = x;
}
}
fprintf(out, "%lld\n", rez);
}
fclose(in);
fclose(out);
return 0;
}