Pagini recente » Cod sursa (job #1656447) | Cod sursa (job #2006023) | Cod sursa (job #2196119) | Cod sursa (job #1009333) | Cod sursa (job #636121)
Cod sursa(job #636121)
#include <cstdio>
#include <cstdlib>
int t, n, m, x[9], y[9], d[9][9], u[9], v[9];
int main()
{
freopen("portal3.in","r",stdin);
freopen("portal3.out","w",stdout);
scanf("%d", &t);
int i, j, c, k;
while (t--)
{
scanf("%d %d", &n, &m);
for (i=0; i<=7; i++)
for (j=0; j<=7; j++) d[i][j]=-1;
for (i=1; i<=5; i+=2)
{
scanf("%d %d %d %d %d", &x[i], &y[i], &x[i+1], &y[i+1], &c);
d[i][i+1]=d[i+1][i]=c;
}
x[7]=n;
y[7]=m;
for (i=0; i<=7; i++)
for (j=0; j<=7; j++)
if (d[i][j]==-1 || abs(x[i]-x[j])+abs(y[i]-y[j])<d[i][j])
d[i][j]=abs(x[i]-x[j])+abs(y[i]-y[j]);
for (k=0; k<=7; k++)
for (i=0; i<=7; i++)
for (j=0; j<=7; j++)
if (i!=j && d[i][k]+d[k][j]<d[i][j])
d[i][j]=d[i][k]+d[k][j];
printf("%d\n",d[0][7]);
}
}