#include<bits/stdc++.h>
using namespace std;
const int N=1e4+5;
int n;
int a[N],b[N];
bool check_min(int x){
for(int i=0;i<n;i++){
if(b[i]<a[i]/x) return false;//判断时,注意符号优先级
}
return true;
}
bool check_max(int x){
for(int i=0;i<n;i++){
if(b[i]>a[i]/x) return false;
}
return true;
}
void solve(){
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i]>>b[i];
}
int minl=1,minr=1e9;
while(minl<minr){
int mid=(minl+minr)/2;
if(check_min(mid)){
minr=mid;
}
else minl=mid+1;
}
int maxl=1,maxr=1e9;
while(maxl<maxr){
int mid=(maxr+maxl+1)/2;
if(check_max(mid)){
maxl=mid;
}
else maxr=mid-1;
}
cout <<minl <<' '<<maxl<<endl;
}
int main(){
solve();
}
蓝桥:3510冶炼金属(二分)
最新推荐文章于 2024-07-23 17:36:37 发布