Cod sursa(job #637047)

Utilizator soriynSorin Rita soriyn Data 20 noiembrie 2011 10:57:27
Problema Portal3 Scor 0
Compilator cpp Status done
Runda .com 2011 Marime 0.98 kb
#include<stdio.h>
#include<fstream>

using namespace std;

ifstream in("portal3.in");
ofstream out("portal3.out");
int n,m,minim,c1,c2,c3,dist,t;
struct punct
{
	int x,y;
};

punct p1,p2,p3,p4,p5,p6;
int query()
{  
	//fara portal 
	minim=n+m+2;
	
	//primul portal
	if(n-p1.x+m-p1.y>= n-p2.x+m-p2.y) dist=n-p1.x+m-p1.y+p2.x+p2.y+2+c1;
	else dist=n+m-p2.x-p2.y+p1.x+p1.y+2+c1;
	if (dist<minim) minim=dist;
	
	//al doilea portal
	if(n-p3.x+m-p3.y>= n-p4.x+m-p4.y) dist=n-p3.x+m-p3.y+p4.x+p4.y+2+c2;
	else dist=n+m-p4.x-p4.y+p3.x+p3.y+2+c2;
	if (dist<minim) minim=dist;
	
	//al treilea portal
	if(n-p5.x+m-p5.y>= n-p6.x+m-p6.y) dist=n-p5.x+m-p5.y+p6.x+p6.y+2+c3;
	else dist=n+m-p6.x-p6.y+p5.x+p5.y+2+c3;
	if (dist<minim) minim=dist;

return minim;	
}

int main()
{
   in>>t;
   for(int i=1;i<=t;i++)
   {
	   in>>n>>m;
	   in>>p1.x>>p1.y>>p2.x>>p2.y>>c1;
	   in>>p3.x>>p3.y>>p4.x>>p4.y>>c2;
	   in>>p5.x>>p5.y>>p6.x>>p6.y>>c3;
	   out<<query()<<"\n";
   }
}