求c序列之和的最大值,既和要大,差要小。
可知和要大,只有2,0搭配;
差要小,只有0,2或0,1搭配;
然后再让a,b序列中相同的元素搭配,最后减去1,2搭配即可。
#include<stdio.h>
int main(){
int t;
scanf("%d",&t);
for(int i=0;i<t;i++){
int x1,x2,y1,y2,z1,z2,ans=0;
scanf("%d %d %d %d %d %d",&x1,&y1,&z1,&x2,&y2,&z2);
if(z1<=y2) ans=2*z1,y2=y2-z1,z1=0;
else ans=2*y2,z1=z1-y2,y2=0;//2,0搭配
if(x1<=z2) z2=z2-x1,x1=0;
else x1=x1-z2,z2=0;//0,2搭配
if(x1<=y2) y2=y2-x1,x1=0;
else x1=x1-y2,y2=0;//0,1搭配
if(x1<=x2) x2=x2-x1,x1=0;
else x1=x1-x2,x2=0;//相同的
if(y1<=y2) y2=y2-y1,y1=0;
else y1=y1-y2,y2=0;
if(z1<=z2) z2=z2-z1,z1=0;
else z1=z1-z2,z2=0;
if(y1<=z2) ans=ans-2*y1;//1,2搭配
else ans=ans-2*z2;
printf("%d\n",ans);
}
return 0;
}


京公网安备 11010502036488号