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#百度实习春招笔试##百度##笔试题目#