Pagini recente » Cod sursa (job #3181267) | Cod sursa (job #1372605) | Cod sursa (job #1235534) | Cod sursa (job #539157) | Cod sursa (job #2194620)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("portal3.in");
ofstream fout("portal3.out");
long long t;
struct info
{
long long x;
long long y;
};
long long f(info a,info b)
{
return abs(a.x-b.x)+abs(a.y-b.y);
}
long long n,m;
info v[10][10];
bool viz[10];
long long costt[10];
long long best;
void bkt(long long strat,info last,long long cost)
{
long long cost_nou=cost+f(last,{n,m});
if(cost_nou<best)
best=cost_nou;
for(long long i=1;i<=3;i++)
if(viz[i]==0)
{
viz[i]=1;
for(long long j=1;j<=2;j++)
bkt(strat+1,v[i][3-j],cost+f(last,v[i][j])+costt[i]);
viz[i]=0;
}
}
int main()
{
fin>>t;
for(long long nr_t=1;nr_t<=t;nr_t++)
{
fin>>n>>m;
for(long long i=1;i<=3;i++)
{
for(long long j=1;j<=2;j++)
fin>>v[i][j].x>>v[i][j].y;
fin>>costt[i];
}
best=f({0,0},{n,m});
bkt(0,{0,0},0);
fout<<best<<"\n";
}
return 0;
}