Cod sursa(job #636057)

Utilizator antoanelaAntoanela Siminiuc antoanela Data 19 noiembrie 2011 16:47:03
Problema Portal3 Scor 0
Compilator cpp Status done
Runda .com 2011 Marime 0.73 kb
#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=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] || 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]);
	}
}