二分法
#include <iostream>
using namespace std;
int n, k;
int a[100005][2];
bool check(int mid){int num = 0;for(int i = 0; i < n; i++){num += (a[i][0] / mid) * (a[i][1] / mid);if(num >= k) return true;}return false;
}int main()
{cin >> n >> k;for(int i = 0; i < n; i++) cin >> a[i][0] >> a[i][1];int l = 0, r = 100001;while(l + 1 != r){int mid = l + r >> 1;if(check(mid)) l = mid;else r = mid;}cout << l << endl;return 0;
}