Pagini recente » Cod sursa (job #3255234) | Cod sursa (job #2579708) | Cod sursa (job #3186179) | Cod sursa (job #2375484) | Cod sursa (job #863835)
Cod sursa(job #863835)
#include<fstream>
using namespace std;
ifstream f("portal3.in");
ofstream g("portal3.out");
int i,j,k,t,n,m,c[10],a[10][10];
struct pc{int x,y;};
pc p[10];
int abs(int x)
{
if(x<0)
return -x;
return x;
}
int dist(pc p1,pc p2)
{
return abs(p1.x-p2.x)+abs(p1.y-p2.y);
}
int main()
{
f>>t;
for(;t;--t)
{
f>>n>>m;
for(i=1;i<=6;i+=2)
{
f>>p[i].x>>p[i].y>>p[i+1].x>>p[i+1].y>>c[i];
}
p[7].x=n;
p[7].y=m;
for(i=0;i<=7;++i)
for(j=i;j<=7;++j)
{
a[i][j]=a[j][i]=dist(p[i],p[j]);
}
if(c[1]<a[1][2])
a[1][2]=a[2][1]=c[1];
if(c[3]<a[3][4])
a[3][4]=a[4][3]=c[3];
if(c[5]<a[5][6])
a[5][6]=a[6][5]=c[5];
for(i=0;i<=7;++i)
for(j=0;j<=7;++j)
for(k=0;k<=7;++k)
if(i!=j&&j!=k&&a[i][j]>a[i][k]+a[k][j])
{
a[i][j]=a[i][k]+a[k][j];
}
g<<a[0][7];
}
return 0;
}