2020 百度实习春招编程第一题
题目
首先给出n个数字a1,a2,….an,然后给你m个回合,每回合你可以从中选择一个数取走它,剩下来的每个数字ai都要减去一个值bi。如此重复m个回合,所有你拿走的数字之和就是你所得到的分数。
现在给定你a序列和b序列,请你求出最多可以得到多少分
输入
输入第一行,仅包含一个整数n(1100),表示数字的个数。
第二行,一个整数m(1),表示回合数。
接下来一行有n个不超过10000的正整数,分别为a1,a2…an. 最后一行有n个不超过500的正整数,分别为b1,b2….bn.
输出
输出仅包含一个正整数,即最多可以得到的分数
样例输入
5
5
10 20 30 40 50
4 5 6 7 8
样例输出
100
我的思路
求an的最大值,每次取最大,保证m次以后取的总和最大,每次取完之后ai-bi,循环进行。(是错的,对唔住,别看了,,,)
代码
我的代码:
n = int(input("n:"))
m = int(input("m:"))
an = input("an")
an = an.split(" ")
an = list(map(int, an))
# print(an)
bn = input("bn")
bn = bn.split(" ")
bn = list(map(int, bn))
sum = 0
while 1:
sum += (max(an))
an.remove((max(an)))
m -= 1
for j in range(m):
an[j] = an[j]-bn[j]
# print(an)
if m == 0:
print(sum)
break
# return sum #百度实习春招笔试##百度##笔试题目#
