牛客小白月赛之超级闪光牛可乐
来源:牛客网
题目描述:
-
森林中出现了野生的超级闪光牛可乐!想要捕捉它,你至少需要投喂 x 点诱惑力的食物。幸运的是,清楚姐姐在知道了这件事后,非常大气的为你开放了她的豪华零食仓库——仓库里有 n种不同名称的食物,第 i 种食物能提供 wi 点的诱惑力。当你所投喂食物的诱惑力之和不小于 x 时,就可以顺利的捕捉到它。
现在,你可以从仓库中取走一些食物了,不管怎么说,今天的目标只有一个,那就是拿下超级闪光牛可乐!
输入输出描述:
-
每个测试文件仅有一组测试数据。第一行输入一个整数 x (1 ≤ x ≤ 1000) 表示至少需要多少诱惑力的食物才能捕捉这一只超级闪光牛可乐。第二行输入一个整数 n (1 ≤ n ≤ 26) 表示清楚姐姐豪华零食仓库中的零食种类数量。随后 n 行,每行输入一个小写字母 ch 和一个整数 w ( ′ a ′ ≤ c h ≤ ′ z ′ , 1 ≤ w ≤ 500) ,表示第 i 种零食的名称以及提供的诱惑力。保证零食的名称不重复;使用单个空格间隔。
-
你需要在一行上输出一个由小写字母组成的答案字符串,代表你要喂给超级闪光牛可乐的食物。但是请注意,喂食的零食数量不能超过 1000 个,否则牛可乐会因为吃不下而直接离开。清楚姐姐仓库中没有的零食种类提供的诱惑力会被视为 0 。如果无法捕获牛可乐,仅需输出一行 −1 。
解题:
大家首先一定要多读几遍题目,把题目搞懂,不难看出,捕捉到牛可乐的方案可能不唯一,由于1000是上限,为了方便解题过程,我们只要找到诱惑力最大的食物,投喂1000个,此时若能捕捉到就捕捉到了,若不能,则只能输出-1了。
代码如下:
x = int(input())
n = int(input())
d = {}
maxkey = ''
maxvalue = 0
for ni in range(n):
di,dj = map(str,input().split())
d[di] = int(dj)
for key,value in d.items():
if (value==max(d.values())):
maxkey = key
maxvalue = value
if maxvalue*1000>=x:
print(maxkey*1000)
else:
print(-1)