返回题解分享
讨论 / 题解分享/ 帖子详情

分巧克力(编程题) - 题解

#include<bits/stdc++.h>
using namespace std;

int a[100005],b[100005];
int l,r = 1e9,mid;
int n,k;

int check(int x)//检测分得的巧克力总数量 
{
	int c = 0;
	for(int i = 1; i <= n; i++)
	{
		c += (a[i]/x)*(b[i]/x);
	}
	return c >= k;
	
}


int main()
{
	
	cin >> n >> k;
	
	for(int i = 1; i <= n; i ++)
	{
		cin >> 	a[i] >> b[i];
	} 
	
	while(r - l > 1)
	{
		mid = (l+r) >> 1;
		if(check(mid)) 	l = mid; // 如果切的数量大于人数, 则尽可能切大 	
		else r = mid; // 如果切的数量少于人数,则切小
	}
	
	cout << l; 
	
	return 0;
}
0 回复 0 转发 0 喜欢 2 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!