code:
#include<bits/stdc++.h>
using namespace std;
int h[1500],w[1500],n,k,ku;
bool check(int l){
int cnt=0;
for(int i=0;i<n;i++){
cnt+=(h[i]/l)*(w[i]/l);
}
ku=cnt;
if(cnt>=k)return 1;
else return 0;
}
int main(){
cin>>n>>k;
for(int i=0;i<n;i++){
cin>>h[i]>>w[i];
}
int l=1,r=min((*min_element(h,h+n)),(*min_element(w,w+n))),mid;
int ans;
while(l<=r){
mid=(l+r)/2;
// cout<<mid<<" ";
if(check(mid)){
ans=mid;l=mid+1;
// cout<<ans<<" "<<ku<<endl;
}
else r=mid-1;
}
cout<<ans<<endl;
return 0;
}
AC #2