Pagini recente » Cod sursa (job #585399) | Cod sursa (job #1812939) | Cod sursa (job #2821852) | Cod sursa (job #132839) | Cod sursa (job #637570)
Cod sursa(job #637570)
#include <fstream>
using namespace std;
long long mod(long long a)
{
return((a<0)?(-a):a);
}
bool used[5];
long long n,m,x[8],y[8],c[5],maxim;
void back(int a,int s)
{
for(int i=1;i<=3;i++)
if(!used[i])
{
used[i]=1;
back(2*i-1,s+mod(x[a]-x[2*i])+mod(y[a]-y[2*i])+c[i]);
back(2*i,s+mod(x[a]-x[2*i-1])+mod(y[a]-y[2*i-1])+c[i]);
used[i]=0;
}
if(s+mod(n-x[a])+mod(m-y[a])<maxim) maxim=s+mod(n-x[a])+mod(m-y[a]);
}
int main()
{
int i,t;
ifstream fi("portal3.in");
ofstream fo("portal3.out");
fi>>t;
for(;t>0;t--)
{
fi>>n>>m;
maxim=n+m;
x[0]=y[0]=0;
fi>>x[1]>>y[1]>>x[2]>>y[2]>>c[1];
fi>>x[3]>>y[3]>>x[4]>>y[4]>>c[2];
fi>>x[5]>>y[5]>>x[6]>>y[6]>>c[3];
back(0,0);
fo<<maxim<<"\n";
}
}