90 TLE 求调
查看原帖
90 TLE 求调
1451143
czl92783719楼主2024/10/3 21:07
m=int(input().split()[1])
h=sorted(list(map(int,input().split())))
hd=[h[0]]
hdr=[0,0]
for i1 in range(1,len(h)):
    hd.append(h[i1]-h[i1-1])
    hdr.append(0)
for i1 in range(1,len(h)+1):
    hdr[-i1-1]=hd[-i1]*i1+hdr[-i1]
hdr.pop()
if hdr[-1]>=m:
    print(h[-1]-m)
else:
    rg=[0,len(hdr)-1]
    while rg[1]-rg[0]!=1:
        if hdr[sum(rg)//2]==m:
            print(h[sum(rg)//2-1])
            exit()
        elif hdr[sum(rg)//2]>m:
            rg[0]=sum(rg)//2
        else:
            rg[1]=sum(rg)//2
    print(int(float(h[rg[0]])-(m-hdr[rg[0]+1])/(len(h)-rg[0])))
2024/10/3 21:07
加载中...