先看题
何老板在瓷器口摆摊提供打气球的游戏,游戏10块钱一局。游戏的玩法是这样的:每局游戏何老板会往天空放出三只氢气球,每只氢气球上都有个数字v(v的范围是-20到50)。每局最多只能开一枪,如果打中的气球上v是正数,何老板将付给玩家v块钱,如果是个负数,玩家必须付给何老板v块钱。
你一口气支付了n(n<=100000)局游戏的费用,你的枪法非常精准,你每枪都能打中你想要打的气球。何老板事先告诉你了他每局放出的气球上的数字,问:你能否赚钱,如果能输出你最多能赚到的钱数,如果不能,输出“Clever He”
输入格式
第一行,一个整数n,表示有n局游戏
接下来n行,每行三个整数,表示每局游戏三个气球上的数字
输出格式
一行,如果赚钱,输出一个数字(>=0)表示最大赚钱数,否则输出"Clever He"
样例输入
5
9 10 -2
-3 -7 -6
10 8 1
17 20 -10
30 20 25
样例输出
20
这题虽然是个水题,
But
这题的坑巨多
坑就坑在没有样例解释
看这题的第一眼
我想
这不简单吗?
直接求三个数的max不就解决了吗?
我甚至样例都没去过,就交了
爆零!
Code:
#include <bits\stdc++.h>
using namespace std;
int a[3],t;
int main(){
scanf("%d",&t);
while(t--){
int maxx=INT_MIN;
for(int i=1; i<=3; i++){
scanf("%d",&a[i]);
maxx=max(maxx,a[i]);
}
}
if(maxx>=0) printf("%d",maxx);
else printf("Clever He");
}
然后我又读了一遍题
o.O原来游戏十块钱一局
赶紧改了一下,又交了
40分
Code:
#include <bits\stdc++.h>
using namespace std;
int a[3],t;
int main(){
scanf("%d",&t);
while(t--){
int maxx=INT_MIN;
for(int i=1; i<=3; i++){
scanf("%d",&a[i]);
maxx=max(maxx,a[i]);
}
}
maxx-=10*t;
if(maxx>=0) printf("%d",maxx);
else printf("Clever He");
}
又双叒叕读了一遍题
emm为什么样例输出是20?
想了很久……
终于开窍了
如果我明摆着要扣钱,那我干脆就不打气球!
AC Code:
#include <bits\stdc++.h>
using namespace std;
int a[3],t;
int main(){
scanf("%d",&t);
while(t--){
int maxx=INT_MIN;
for(int i=1; i<=3; i++){
scanf("%d",&a[i]);
maxx=max(maxx,a[i]);
}
maxx=max(maxx,0);
}
maxx-=10*t;
if(maxx>=0) printf("%d",maxx);
else printf("Clever He");
}
总结:
通过这题的错误经验
我以后应该先过样例再提交
不然很容易像今天一样,踩坑,爆零!!!
都看到这了,点个赞再走吧QwQ