def solution(citations):
lo, hi = 0, len(citations) + 1
while lo + 1 < hi:
mid = (lo + hi) // 2
cnt = 0
for paper in citations:
if paper >= mid:
cnt += 1
if cnt >= mid:
lo = mid
else:
hi = mid
return lo
print(solution([3, 0, 6, 1, 5]))
ZGVmIHNvbHV0aW9uKGNpdGF0aW9ucyk6CiAgICBsbywgaGkgPSAwLCBsZW4oY2l0YXRpb25zKSArIDEKICAgIHdoaWxlIGxvICsgMSA8IGhpOgogICAgICAgIG1pZCA9IChsbyArIGhpKSAvLyAyCiAgICAgICAgY250ID0gMAogICAgICAgIGZvciBwYXBlciBpbiBjaXRhdGlvbnM6CiAgICAgICAgICAgIGlmIHBhcGVyID49IG1pZDoKICAgICAgICAgICAgICAgIGNudCArPSAxCiAgICAgICAgaWYgY250ID49IG1pZDoKICAgICAgICAgICAgbG8gPSBtaWQKICAgICAgICBlbHNlOgogICAgICAgICAgICBoaSA9IG1pZAogICAgcmV0dXJuIGxvCiAgICAKcHJpbnQoc29sdXRpb24oWzMsIDAsIDYsIDEsIDVdKSkK