赛码:Manager Python
时间限制: 3000MS
内存限制: 589824KB题目描述:小明是一个互联网公司的老板,需要招聘员工。现在有k个学校的学生前来应聘。
由于特殊原因,要求最后入职的员工学校的人数应该都不一样。
比如我们可以A大学录取5人,B大学录取4人。但是不允许A大学和B大学都录取5人。
请问最后最多录取多少人呢?
输入描述第一行一个整数k,表示学校的数量。
第二行k个整数ai,表示这个学校有ai个人前来应聘。
满足 1<=k<=100000,1<=ai<=100000
输出描述输出最多录取人数
样例输入3 3 3 2样例输出6
写了半天只能AC 67%,我再也不再赛码上浪费时间了,真的好气人!我真的服了。
n = int(input()) l = list(map(int,input().split(' '))) l.sort(reverse=True) dp = 0 d = dict() cur = l[0] for num in l: if num < cur: cur = num while cur in d and cur >= 1: cur -= 1 if cur <= 0 and cur in d: break d[cur] = cur dp += cur print(dp)