Pagini recente » Cod sursa (job #751575) | Diferente pentru implica-te/arhiva-educationala intre reviziile 60 si 61 | Cod sursa (job #15741) | Cod sursa (job #564936) | Cod sursa (job #636673)
Cod sursa(job #636673)
#include<fstream>
using namespace std;
#define abs(a) ((a)<0?-(a):a)
int T,N,M,X1,X2,X3,X4,X5,X6,Y1,Y2,Y3,Y4,Y5,Y6,C1,C2,C3,lg;
void rezolva();
int main(){
rezolva();
return 0;
}
void rezolva(){
int i,lgx,aux;
ifstream fin("portal3.in");
ofstream fout("portal3.out");
fin>>T;
for(i=1;i<=T;i++){
fin>>N>>M>>X1>>Y1>>X2>>Y2>>C1>>X3>>Y3>>X4>>Y4>>C2>>X5>>Y5>>X6>>Y6>>C3;
if(X2+Y2<X1+Y1){
aux=X1;
X1=X2;
X2=aux;
aux=Y1;
Y1=Y2;
Y2=aux;
}
if(X4+Y4<X3+Y3){
aux=X3;
X3=X4;
X4=aux;
aux=Y3;
Y3=Y4;
Y4=aux;
}
if(X6+Y6<X5+Y5){
aux=X5;
X5=X6;
X6=aux;
aux=Y5;
Y5=Y6;
Y6=aux;
}
lg=N+M; //1
lgx=abs(0-X1)+abs(0-Y1)+C1+abs(N-X2)+abs(M-Y2); //2
if(lgx<lg)
lg=lgx;
lgx=abs(0-X3)+abs(0-Y3)+C2+abs(N-X4)+abs(M-Y4); //3
if(lgx<lg)
lg=lgx;
lgx=abs(0-X5)+abs(0-Y5)+C3+abs(N-X6)+abs(M-Y6); //4
if(lgx<lg)
lg=lgx;
lgx=abs(0-X1)+abs(0-Y1)+C1+abs(X2-X3)+abs(Y2-Y3)+C2+abs(N-X4)+abs(M-Y4); //5
if(lgx<lg)
lg=lgx;
lgx=abs(0-X1)+abs(0-Y1)+C1+abs(X2-X5)+abs(Y2-Y5)+C3+abs(N-X6)+abs(M-Y6); //6
if(lgx<lg)
lg=lgx;
lgx=abs(0-X3)+abs(0-Y3)+C2+abs(X4-X1)+abs(Y4-Y1)+C1+abs(N-X2)+abs(M-Y2); //7
if(lgx<lg)
lg=lgx;
lgx=abs(0-X3)+abs(0-Y3)+C2+abs(X4-X5)+abs(Y4-Y5)+C3+abs(N-X6)+abs(M-Y6); //8
if(lgx<lg)
lg=lgx;
lgx=abs(0-X5)+abs(0-Y5)+C3+abs(X6-X1)+abs(Y6-Y1)+C1+abs(N-X2)+abs(M-Y2); //9
if(lgx<lg)
lg=lgx;
lgx=abs(0-X5)+abs(0-Y5)+C3+abs(X6-X3)+abs(Y6-Y3)+C2+abs(N-X4)+abs(M-Y4); //10
if(lgx<lg)
lg=lgx;
lgx=abs(0-X1)+abs(0-Y1)+C1+abs(X2-X3)+abs(Y2-Y3)+C2+abs(X4-X5)+abs(Y4-Y5)+C3+abs(N-X6)+abs(M-Y6); //11
if(lgx<lg)
lg=lgx;
lgx=abs(0-X1)+abs(0-Y1)+C1+abs(X2-X5)+abs(Y2-Y5)+C3+abs(X6-X3)+abs(Y6-Y3)+C2+abs(N-X4)+abs(M-Y4); //12
if(lgx<lg)
lg=lgx;
lgx=abs(0-X3)+abs(0-Y3)+C2+abs(X4-X1)+abs(Y4-Y1)+C1+abs(X2-X5)+abs(Y2-Y5)+C3+abs(N-X6)+abs(M-Y6); //13
if(lgx<lg)
lg=lgx;
lgx=abs(0-X3)+abs(0-Y3)+C2+abs(X4-X5)+abs(Y4-Y5)+C3+abs(X6-X1)+abs(Y6-Y1)+C1+abs(N-X2)+abs(M-Y2); //14
if(lgx<lg)
lg=lgx;
lgx=abs(0-X5)+abs(0-Y5)+C3+abs(X6-X1)+abs(Y6-Y1)+C1+abs(X2-X3)+abs(Y2-Y3)+C2+abs(N-X4)+abs(M-Y4); //15
if(lgx<lg)
lg=lgx;
lgx=abs(0-X5)+abs(0-Y5)+C3+abs(X6-X3)+abs(Y6-Y3)+C2+abs(X4-X1)+abs(Y4-Y1)+C1+abs(N-X2)+abs(M-Y2); //16
if(lgx<lg)
lg=lgx;
fout<<lg<<"\n";
}
fin.close();
fout.close();
}