24分,求助
查看原帖
24分,求助
1059474
zzx0203楼主2024/6/15 22:41
#include<bits/stdc++.h>
using namespace std;
int a[100005][5];
long long n,k;
long long l=1,r=100005,mid;
bool cheak(int x){
	long long ams=0;
	for(int i=1;i<=n;i++){
		ams+=(a[i][1]/mid)*(a[i][2]/mid);
	}
	if(ams>=k){
		return 1;//小了 
	}
	else{
		return 0;//大了 
	}
}
int main(){
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i][1]>>a[i][2];
	}
	while(l<r){
		mid=(l+r)>>1;
		//cout<<"!!! l:"<<l<<"		mid:"<<mid<<"		r:"<<r<<endl;
		if(cheak(mid)){
			l=mid+1;
		}
		else{
			r=mid-1;
		}
	}
	cout<<l;
	return 0;
}

#5,8AC,其他都WA

2024/6/15 22:41
加载中...