CF1792B题解
思路
显然,当 时,输出 (因为 连续的无论怎么取都只能取 个)。
如果 ,因为题目说:
type 1: both Alice and Bob like them;
翻译过来就是第 种笑话,两个人都喜欢,所以讲第 种笑话是有益的。
所以, 加上 。
接着我们发现题目又说:
type 2: Alice likes them, but Bob doesn't;
type 3: Bob likes them, but Alice doesn't;
所以,讲一个第二种再讲一个第三种不会改编两人的辛勤。
这样,就把 加上第二种和第三种的最小值再乘 ,既 。
现在,后三种的笑话还剩 个,而两人的心情值为 。
所以,最后结束是要么讲了 个后三种的笑话,两个人的心情值至少有一个人小于 ;要么是讲完了后三种笑话,结束表演。
则, 加上 。最后,输出 。
代码
#include<bits/stdc++.h>
using namespace std;
int t,a1,a2,a3,a4;
int main(){
scanf("%d",&t);
while(t--){
scanf("%d%d%d%d",&a1,&a2,&a3,&a4);
if(a1==0){
printf("1\n");
continue;
}
int ans=a1;
ans+=2*min(a2,a3);
ans+=min(a1+1,a2+a3+a4-2*min(a2,a3));
printf("%d\n",ans);
}
return 0;
}

浙公网安备 33010602011771号