陶怡然
(陶怡然)
1
题目描述
时间:1s 空间:256M
题目描述
老六和老七都是有名的美食家,你则是有名的大厨,你的任务是想办法让他们尽可能地多吃你做的菜。
一开始,老六和老七的开心度为0,如果某位美食家喜欢这道菜,那他的开心度+1,如果不喜欢,那他的开心度-1.
你一道道地上菜,你上一盘,老六和老七尝一盘,一旦有某个美食家开心度 < 0,那你就不能继续上菜了。
你提前准备好了 a + b + c + d 盘菜,代表:
- 老六喜欢,老七也喜欢的菜有a盘;
- 老六喜欢,老七不喜欢的菜有b盘;
- 老六不喜欢,老七喜欢的菜有c盘;
- 老六不喜欢,老七不喜欢的菜有d盘;
可以知道上菜顺序不一样,最终吃的盘数也可能不一样。请输出在最优的安排下你最多能上几盘菜。
输入格式
第一行一个整数 t 表示数据组数。
对于每组数据,一行四个整数 a b c d。
输出格式
对于每组数据一个整数表示你最多能上几盘菜。
样例输入
4
5 0 0 0
0 0 0 5
2 5 10 6
3 0 0 7
样例输出
5
1
15
7
约定
1≤𝑡≤10^4
0≤𝑎1,𝑎2,𝑎3,𝑎4≤10^8
𝑎1+𝑎2+𝑎3+𝑎4≥1
陶怡然
(陶怡然)
2
错误代码:
#include<bits/stdc++.h>
using namespace std;
int m;
int main(){
cin>>m;
while(m–){
int a,b,c,d,cn=0,l,q;
cin>>a>>b>>c>>d;
cn=a;
l=a;
q=a;
while(1){
if(q&&b){
b–;
l++;
q–;
cn++;
}else if(l&&c){
c–;
l–;
q++;
cn++;
}else{
break;
}
}
while(l>=0&&q>=0&&d){
cn++;
l–;
q–;
d–;
}
if((q>=0&&b)||(l>=0&&c)){
cn++;
}
cout<<cn<<endl;
}
return 0;
}
彭英哲
(pyz51)
3
更好的观感
#include<bits/stdc++.h>
using namespace std;
int m;
int main(){
cin>>m;
while(m--){
int a,b,c,d,cn=0,l,q;
cin>>a>>b>>c>>d;
cn=a;
l=a;
q=a;
while(1){
if(q&&b){
b--;
l++;
q--;
cn++;
}else if(l&&c){
c--;
l--;
q++;
cn++;
}else{
break;
}
}
while(l>=0&&q>=0&&d){
cn++;
l--;
q--;
d--;
}
if((q>=0&&b)||(l>=0&&c)){
cn++;
}
cout<<cn<<endl;
}
return 0;
}
``·