NKOJ 1911 【语法基础】何老板摆摊 题解

先看题

何老板在瓷器口摆摊提供打气球的游戏,游戏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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值