求助 64pts
查看原帖
求助 64pts
526922
coool楼主2023/10/7 23:08
#include <bits/stdc++.h>
using namespace std;
const int MAXX = 1e5+5;
#define int long long

int k,n,s;

struct node{
	int w,h;
}node[MAXX];


bool check(int x){
	int res = 0;
	for (int i = 1; i <= n; i++){
		res += (node[i].h / x * node[i].w / x);
		if (res >= k) return true;
		
	}
	
	return false;
}


int binarySearch(int l, int r){
	while (l < r){
		int mid = (l + r + 1 )>> 1;
		if (check(mid)){
			l = mid ;
		}
		else r = mid - 1;
	}

	return l;
}


signed main(){
	
	cin >> n >> k;
	for (int i = 1; i <= n; i++){
		cin >> node[i].h >> node[i].w;
	}
	
	int l, r;
	l = 1;
	r = 100002;
	
	cout << binarySearch(l,r) << endl;
	
	return 0;
} 

2023/10/7 23:08
加载中...