提利昂的赏赐(百度2017秋招真题)

题目描述

提利昂收服山地部落之后决定犒赏士卒,本着陈力就列的原则,他决定给五种人以赏赐:
1.作战能力>80,并且至少有一项特殊能力的人,每人8000银鹿
2.作战能力>85,并且声望>80的人,每人4000银鹿
3.作战能力>90,每人2000银鹿
4.作战能力>85的灼人部成员每人1000银鹿
5.声望>80的军官每人850银鹿。
提利昂想要尽量多的犒赏部下,所以只要满足条件即可得到奖赏,即每人可以获得多项赏赐。请你帮他算算自己需要准备多少银鹿,并且他想要知道得到赏赐最多的人是谁,以及它得到的银鹿数量。

输入样例

4
wdd 98 83 Y N 0
hdd 99 67 N Y 1
ldd 93 99 N N 0
qdd 81 97 Y N 1

  • 第一行一个整数N,表示士卒总数。1<=N<=100
  • 接下来N行每行一个字符串s,两个整数a,b,两个字母c,d,一个整数x。
  • S表示士卒的姓名,为长度小于20的字符串(不含空格)。
  • a,b分别表示作战能力和声望,都是属于[0,100]的整数。
  • c,d分别表示是否是军官和是否是灼人部成员,大写字母Y表示是,大写字母N表示不是,保证c,d只为Y或N。
  • x表示此人拥有的特殊能力数量。0<=x<=10

样例输出

hdd
11000
32700 #总共的奖励

代码

def calculate(s,a,b,c,d,x):money=0if (a > 80) and (x > 0):money += 8000if (a > 85) and (b > 80):money += 4000if a > 90:money += 2000if (a > 85) and (d == 'Y'):money += 1000if (b > 80) and (c == 'Y'):money += 850return moneyn=int(input())name=''
most=0
prepare=0for i in range(n):input_str=input()s,a,b,c,d,x=input_str.split(' ')a=int(a)b=int(b)x=int(x)money=calculate(s,a,b,c,d,x)if money>most:name=smost=moneyprepare+=moneyprint(name)
print(most)
print(prepare)

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部