精选一百道备赛蓝桥杯——3.分巧克力

精选一百道备赛蓝桥杯——3.分巧克力_第1张图片
精选一百道备赛蓝桥杯——3.分巧克力_第2张图片

二分法

#include 
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;
}

你可能感兴趣的:(精选一百道题备赛蓝桥杯,蓝桥杯,算法,职场和发展)