Cod sursa(job #1564326)

Utilizator hrazvanHarsan Razvan hrazvan Data 9 ianuarie 2016 17:06:25
Problema Portal3 Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <stdio.h>
#define INF 2000000000
int x1[3], y1[3], x2[3], y2[3], c[3], dist[3];

int main(){
  FILE *in = fopen("portal3.in", "r");
  FILE *out = fopen("portal3.out", "w");
  int t, n, m, i, j, x, k, rez;
  fscanf(in, "%d", &t);
  for(; t > 0; t--){
    fscanf(in, "%d%d", &n, &m);
    for(i = 0; i < 3; i++){
      fscanf(in, "%d%d%d%d%d", &x1[i], &y1[i], &x2[i], &y2[i], &c[i]);
      dist[i] = x1[i] + y1[i];
    }
    rez = n + m;
    for(k = 0; k < 6; k++){
      for(i = 0; i < 3; i++){
        for(j = 0; j < 3; j++){
          x = dist[i] + c[i] + abs(x2[i] - x1[j]) + abs(y2[i] - y1[j]);
          if(x < dist[j])
            dist[j] = x;
        }
        x = n - x2[i] + m - y2[i] + c[i] + dist[i];
        if(rez > x)
          rez = x;
      }
    }
    fprintf(out, "%d\n", rez);
  }
  fclose(in);
  fclose(out);
  return 0;
}