`x,y=map(int,input().split())
cokes=[]
ans=0
MAX=0
for i in range(x):
a,b=map(int,input().split())
MAX=max(a,b,MAX)
cokes.append([a,b])
def cal(m):
res=0
for c,d in cokes:
res+=(c//m)*(d//m)
return res
l,r=0,MAX
while(l<=r):
mid=(l+r)//2
if (cal(mid)>=y):
ans=mid
l=mid+1
else:
r=mid-1
print(ans)`
首次写出错在max处,我使用的min,导致一些数据没有取到,二分法不需要手动缩小范围,直接取可能取到的值的范围