Pagini recente » Cod sursa (job #1929375) | Cod sursa (job #596728) | Cod sursa (job #2789925) | Cod sursa (job #2944833) | Cod sursa (job #863843)
Cod sursa(job #863843)
#include<fstream>
using namespace std;
ifstream f("portal3.in");
ofstream g("portal3.out");
long long i,j,k,t,n,m,c[10],a[10][10];
struct pc{long long x,y;};
pc p[10];
long long abs(int x)
{
if(x<0)
return -x;
return x;
}
long long dist(pc p1,pc p2)
{
return (long long)(abs(p1.x-p2.x)+abs(p1.y-p2.y));
}
int main()
{
f>>t;
for(;t;--t)
{
p[0].x=p[0].y=0;
f>>n>>m;
for(i=1;i<=5;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]=dist(p[i],p[j]);
a[j][i]=a[i][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(k=0;k<=7;++k)
for(i=0;i<=7;++i)
for(j=0;j<=7;++j)
if(i!=j&&i!=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;
}