B-2

(一)思路:
要使c中之和最大,这时我们发现当2与1结合时是c中元素最大的值,而1与2结合是c中元素最小的值,所以要将1与2的结合尽可能减少。所以:
1.先对2与1的结合情况进行讨论
2.在1的基础上,我们尽量用1与0、1结合,0、2与2结合。在其前提下,如果满足a中1有剩余,b中2有剩余,那么这时两者数量会相等,减去2乘余下的数量,为此时c中元素之和最大值。在此条件之外,就是2与1结合多少,2结合数量(即为c元素之和的最大值)。
(二)代码:
#include<stdio.h>
int main()
{
int t,sum=0;
while(scanf("%d",&t)!=EOF)
{
while(t--)
{
int x1,y1,z1;
int x2,y2,z2;
scanf("%d%d%d",&x1,&y1,&z1);
scanf("%d%d%d",&x2,&y2,&z2);
if(z1<=y2)
{
sum=2
z1,y2-=z1,z1=0;
if(y1-x2-y2>0&&z2-x1-z1>0)
{
y1-=x2+y2;
z2-=x1+y1;
sum-=2y1;
printf("%d\n",sum);
}
else
{
printf("%d\n",sum);
}
}
else
{
sum=2
y2,z1-=y2,y2=0;
if(y1-x2-y2>0&&z2-x1-z1>0)
{
y1-=x2+y2;
z2-=x1+y1;
sum-=2*y1;
printf("%d\n",sum);
}
else
{
printf("%d\n",sum);
}
}
}
}
return 0;
}

全部评论

相关推荐

今天 00:37
已编辑
山东大学 C++
小浪_Coding:你问别人,本来就是有求于人,别人肯定没有义务免费回答你丫, 有点流量每天私信可能都十几,几十条的,大家都有工作和自己的事情, 付费也是正常的, 就像你请别人搭把手, 总得给人家买瓶水喝吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务