Pagini recente » Cod sursa (job #2579724) | Cod sursa (job #1726493) | Cod sursa (job #2839003) | Cod sursa (job #2733306) | Cod sursa (job #1122871)
#include<fstream>
#define NMAX 10
using namespace std;
ifstream f("portal3.in");
ofstream g("portal3.out");
struct portal
{
long long x, y;
}a[NMAX];
long long n, m, best[NMAX][NMAX], c[4];
long long modul(int x)
{
if (x<0) return -x;
return x;
}
void Citeste()
{
int i;
f>>n>>m;
a[7].x=n; a[7].y=n;
f>>a[1].x>>a[1].y>>a[2].x>>a[2].y>>c[1];
f>>a[3].x>>a[3].y>>a[4].x>>a[4].y>>c[2];
f>>a[5].x>>a[5].y>>a[6].x>>a[6].y>>c[3];
}
void Initializeaza()
{
int i, j;
long long dim=1000000010;
for (i=0; i<8; ++i)
for (j=0; j<8; ++j)
best[i][j]=modul(a[i].x-a[j].x)+modul(a[i].y-a[j].y);
}
void Roy_Floyd()
{
int i, j, k;
for (k=0; k<8; ++k)
for (i=0; i<8; ++i)
for (j=0; j<8; ++j)
if (i!=j && i!=k && j!=k)
best[i][j]=min(best[i][j], best[i][k]+best[k][j]);
}
int main()
{
int T;
f>>T;
a[0].x=a[0].y=0; a[7].x=n; a[7].y=m;
while (T--)
{
Citeste();
Initializeaza();
best[1][2]=best[2][1]=min(best[1][2], c[1]);
best[3][4]=best[4][3]=min(best[3][4], c[2]);
best[5][6]=best[5][6]=min(best[5][6], c[3]);
Roy_Floyd();
g<<best[0][7]<<"\n";
}
f.close();
g.close();
return 0;
}