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

题目描述:

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

输入

第一行一个整数N,表示士卒总数。1=N=100

接下来N行每行一个字符串s,两个整数ab,两个字母cd,一个整数x

S表示士卒的姓名,为长度小于20的字符串(不含空格)。

a,b分别表示作战能力和声望,都是属于[0,100]的整数。

c,d分别表示是否是军官和是否是灼人部成员,大写字母Y表示是,大写字母N表示不是,保证c,d只为YN

x表示此人拥有的特殊能力数量。0=x=10

输出

三行。

第一行一个字符串,为得到赏赐最多的人的名字。

第二行和第三行各一个整数分别表示得到赏赐最多的人得到的银鹿数和提利昂需要准备的银鹿数。

 

S表示士卒的姓名,为长度小于20的字符串(不含空格)。

a,b分别表示作战能力和声望,都是属于[0,100]的整数。

c,d分别表示是否是军官和是否是灼人部成员,大写字母Y表示是,大写字母N表示不是,保证c,d只为YN

x表示此人拥有的特殊能力数量。0=x=10

样例输入

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

样例输出

hdd
11000
32700

代码如下:

n=int(raw_input())
all_sum=0
sum_max=0
count=0
name=" "
list=[]
for i in range(n):
	a=map(str,raw_input().strip().split())
	list.append(a)
for c in list:
	count+=1
	sum=0
	if int(c[1])>80 and int(c[5])>=1:
		sum+=8000
	if int(c[1])>85 and int(c[2])>80:
		sum+=4000
	if int(c[1])>90:
		sum+=2000
	if int(c[1])>85 and str(c[4])=='Y':
		sum+=1000
	if int(c[2])>80 and str(c[3])=='Y':
		sum+=850
	if count==1:
		sum_max=sum
		name=c[0]
	else:
		if sum>sum_max:
			sum_max=sum
			name=c[0]
	all_sum+=sum
print name
print sum_max
print all_sum

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值