五一训练礼包 B-2
求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; }