五一劳动之第二题

题目链接:https://vjudge.net/contest/436484#problem/B
题目首先给定两个数组a,b中0,1,2的个数,让我们根据规律找出数列c的和的最大值,根据题目中得到的规律我们可以知道,只要ai,bi两个都是0或1,是不会对数列c的和有任何影响的,无论他的大小关系,唯一有影响的就是2,1或1,2,一种为2,另一种为-2.首先我们求出等于2的情况,即ai>bi,此时就是看a数列中的2和b数列中的1哪一个比较多,求出和,然后来讨论-2的情况,但是我们要考虑到0,2,这种情况下是0,所以先排除,然后如果a数列的2还有多的,再排除2,2这种情况,最后剩下的才不得不得出-2的结果。最后输出和就好啦
代码如下:

include

using namespace std;
int main()
{
int t;
cin>>t;
while(t--){
int x1,y1,z1,x2,y2,z2;
cin>>x1>>y1>>z1>>x2>>y2>>z2;
int sum=0;
int m1=z1-y2; //判断a中的2和b中的1哪一个比较多
if(m1>0)sum+=y22;
else sum+=z1
2;
if(m1>0){
int x=z2-m1-x1; //如果a中的2有剩余,那么这里要把a中剩余的2减去
if(x>0)sum-=x2;
}
else{
int x=z2-x1; //无剩余就不用减去a中的2,只考虑a中的0即可
if(x>0)sum-=x
2;
}
cout<<sum<<endl;
}
return 0;
}

上一篇:洛谷:P1020 导弹拦


下一篇:oracle三张表左连接