目录

精选一百道备赛蓝桥杯4.冶炼金属

目录

精选一百道备赛蓝桥杯——4.冶炼金属

https://i-blog.csdnimg.cn/direct/f8c9eabcfa4b4863b1eccca5a5d6f6e3.png

https://i-blog.csdnimg.cn/direct/302bf5ab36be47cbbdaa981874e49101.png

二分法

#include <bits/stdc++.h>
using namespace std; 
int a[10010], b[10010], n;
bool check(int mid){
    for(int i = 1; i <= n; i++){
        if(a[i]/mid > b[i]) return true;
    }
    return false;
}

bool check1(int mid){
    for(int i = 1; i <= n; i++){
        if(a[i]/mid < b[i]) return false;
    }
    return true;
}
int main()
{
    cin >> n; 
    for(int i = 1 ; i <= n ; i ++) cin >> a[i] >> b[i];
    int l = 0, r = 1e9+1;
    while(l + 1 != r){
        int mid = l + r >> 1;
        if(check(mid)) l = mid;
        else r = mid;
    }
    cout << r << ' ';
    
    l = 0, r = 1e9+1;
    while(l + 1 != r){
        int mid = l + r >> 1;
        if(check1(mid)) l = mid;
        else r = mid;
    }
    cout << l;
    return 0;
}