读入不要使用eval(),使用int()才能过。想了一个下午,我还以为是算法的问题。
N,M=map(int,input().split())
lt=[int(i) for i in input().split()]
lt.sort(reverse=True)
cnt,h=0,0
if N==1:
print(lt[0]-M)
else:
for i in range(N-1):
cnt+=(lt[i]-lt[i+1])*(i+1);h+=(lt[i]-lt[i+1])
if cnt>M:
break
print(lt[0]-h+(cnt-M)//(i+1))
这样就不能过。显示超时。
N,M=map(int,input().split())
lt=[eval(i) for i in input().split()]
lt.sort(reverse=True)
cnt,h=0,0
if N==1:
print(lt[0]-M)
else:
for i in range(N-1):
cnt+=(lt[i]-lt[i+1])*(i+1);h+=(lt[i]-lt[i+1])
if cnt>M:
break
print(lt[0]-h+(cnt-M)//(i+1))