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

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

#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 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!