Cod sursa(job #637764)

Utilizator thesilverhand13FII Florea Toma Eduard thesilverhand13 Data 20 noiembrie 2011 16:30:10
Problema Portal3 Scor 0
Compilator cpp Status done
Runda .com 2011 Marime 3.13 kb
 # include <fstream>
 
 using namespace std;
 
 ifstream f("portal3.in");
 ofstream g("portal3.out");
 
 int t;
 long long n, m;
 long long x, y, c, x2, y2, c2, x3, y3, c3;
 long long xf, yf, xf2, yf2, xf3, yf3;
 
 long long minim;
 
 long long min1, min2, min3, min4, min5, min6, min7, min8, min9, min10, min11, min12, min13, min14, min15, min16, min17, min18;
 
 int abs( int n )
 {
	 if ( n < 0 )
		 return -n;
	 return n;
 }
 
 void rezolva()
 {
	 n ++;
	 m ++;
	 
	 min1 = ( n - 1 )+ ( m - 1 );
	 
	 min2 = ( ( x - 1 ) + ( y - 1 ) ) + ( abs ( n - xf ) + abs ( m - yf ) ) + c;
	 min3 = ( ( x2 - 1 ) + ( y2 - 1 ) ) + ( abs ( n - xf2 ) + abs ( m - yf2 ) ) + c2;
	 min4 = ( ( x3 - 1 ) + ( y3 - 1 ) ) + ( abs ( n - xf3 ) + abs ( m - yf3 ) ) + c3;

	 min7 = ( ( xf - 1 ) + ( yf - 1 ) ) + ( abs ( n - x ) + abs ( m - y ) ) + c;
	 min8 = ( ( xf2 - 1 ) + ( yf2 - 1 ) ) + ( abs ( n - x2 ) + abs ( m - y2 ) ) + c2;
	 min9 = ( ( xf3 - 1 ) + ( yf3 - 1 ) ) + ( abs ( n - x3 ) + abs ( m - y3 ) ) + c3;
	 
	 
	 
	 min5 = ( ( x - 1 ) + ( y - 1 ) ) + ( abs ( xf - x2 ) + abs ( yf - y2 ) ) + c + ( abs ( n - xf2 ) + abs ( m - yf2 ) ) + c2; 
	 min12 =  ( ( x - 1 ) + ( y - 1 ) ) + ( abs ( xf - xf2 ) + abs ( yf - yf2 ) ) + c + ( abs ( n - x2 ) + abs ( m - y2 ) ) + c2;
	 min10 = ( ( xf - 1 ) + ( yf - 1 ) ) + ( abs ( x - x2 ) + abs ( y - y2 ) ) + c + ( abs ( n - xf2 ) + abs ( m - yf2 ) ) + c2; 
	 min11 = ( ( xf - 1 ) + ( yf - 1 ) ) + ( abs ( x - xf2 ) + abs ( y - yf2 ) ) + c + ( abs ( n - x2 ) + abs ( m - y2 ) ) + c2; 
	 
	 
	 min6 = ( ( x - 1 ) + ( y - 1 ) ) + ( abs ( xf - x3 ) + abs ( yf - y3 ) ) + c + ( abs ( n - xf3 ) + abs ( m - yf3 ) ) + c3; 
	 min13 = ( ( x - 1 ) + ( y - 1 ) ) + ( abs ( xf - xf3 ) + abs ( yf - yf3 ) ) + c + ( abs ( n - x3 ) + abs ( m - y3 ) ) + c3;
	 min14 = ( ( xf - 1 ) + ( yf - 1 ) ) + ( abs ( x - x3 ) + abs ( y - y3 ) ) + c + ( abs ( n - xf3 ) + abs ( m - yf3 ) ) + c3; 
	 min15 = ( ( xf - 1 ) + ( yf - 1 ) ) + ( abs ( x - xf3 ) + abs ( y - yf3 ) ) + c + ( abs ( n - x3 ) + abs ( m - y3 ) ) + c3;
	 
	 
	 
	 
	 //g << min1 << " ";
	// g << ( abs ( n - xf2 ) + abs ( m - yf2 ) );
	 
	 //g << min1 << " " << min2 << " " << min3 << " " << min4;
     //g << min1 << " ";
 }
 
 void afisare()
 {
	 minim = min1;
	 if ( minim > min2 )
		 minim = min2;
	 if ( minim > min3 )
		 minim = min3;
	 if ( minim > min4 )
		 minim = min4;
	 if ( minim > min5 )
		 minim = min5;
	 if ( minim > min6 )
		 minim = min6;
	 if ( minim > min7 )
		 minim = min7;
	 if ( minim > min8 )
		 minim = min8;
	 if ( minim > min9 )
		 minim = min9;
	 if ( minim > min10 )
		 minim = min10;
	 if ( minim > min11 )
		 minim = min11;
	 if ( minim > min12 )
		 minim = min12;
	 if ( minim > min13 )
		 minim = min13;
	 if ( minim > min14 )
		 minim = min14;
	 if ( minim > min15 )
		 minim = min15;
	
	 g << minim << "\n";
	 
 }
 
 void citire()
 {
	 int i;
	 f >> t;
	 for ( i = 1 ; i <= t ; i++ )
	 {
		 f >> n >> m;
		 f >> x >> y >> xf >> yf >> c;
		 f >> x2 >> y2 >> xf2 >> yf2 >> c2;
		 f >> x3 >> y3 >> xf3 >> yf3 >> c3;
		 rezolva();
	 }
 }
 
 int main()
 {
	 citire();
	 afisare();
	 return 0;
 }