题目描述
提利昂收服山地部落之后决定犒赏士卒,本着陈力就列的原则,他决定给五种人以赏赐:
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=0
if (a > 80) and (x > 0):
money += 8000
if (a > 85) and (b > 80):
money += 4000
if a > 90:
money += 2000
if (a > 85) and (d == 'Y'):
money += 1000
if (b > 80) and (c == 'Y'):
money += 850
return money
n=int(input())
name=''
most=0
prepare=0
for 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=s
most=money
prepare+=money
print(name)
print(most)
print(prepare)