#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstdio>
#include<string>
#include<vector>
using namespace std;
int n,k;
struct node{
int height;
int width;
};
vector<node> qcl;
bool check(int side){
int c=0;
for(int i=0;i<n;i++){
c+=(qcl[i].height/side) *(qcl[i].width/side);
}
return c>=k;
}
int main(){
cin>>n>>k;
int res=0;
// 处理输入数据
for(int i=0;i<n;i++){
node ever;
cin>>ever.height>>ever.width;
qcl.push_back(ever);
}
int l=0,r=1e9;
while(l<=r){
int mid=l+r>>1;
if(check(mid)){
res=mid;
l=mid+1;
}else{
r=mid-1;
}
}
cout<<res;
return 0;
}
0 回复
0 转发
0 喜欢
2 阅读



