Python一个小细节
查看原帖
Python一个小细节
1015395
ICPC_CCPC楼主2023/6/2 20:39

读入不要使用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))
2023/6/2 20:39
加载中...