提交时间:2024-05-03 10:57:11

运行 ID: 46355

//4.最大值 #include<bits/stdc++.h> using namespace std; int n,k,w[505],h[505]; bool check(int a){// 二分答案 int cnt=0; for(int i=0;i<n;i++){ cnt+=(w[i]/a)*(h[i]/a); } return (cnt>=k); } int main() { cin>>n; int maxn=0; for(int i=0;i<n;i++){ cin>>w[i]>>h[i]; if(w[i]>maxn) maxn=w[i]; if(h[i]>maxn) maxn=h[i]; } cin>>k; int L=1,R=maxn; while(L+1<R) { int mid=(L+R)/2; if(check(mid)) L=mid; else R=mid; } cout<<L<<endl; return 0; }