莫非17要特判?
查看原帖
莫非17要特判?
542313
宇宙的怒火楼主2021/8/27 10:57
#include<bits/stdc++.h>
using namespace std;
long long n,p,o1,o2,m1,m2;vector<double>a,b;double s;
int main(){
    cin>>n>>p;
    while(cin>>o1>>o2){
        a.push_back(o1);b.push_back(o2);m1+=o1,m2+=o2;
    }
    if(p>=m1){
        cout<<-1;return 0;
    }
    double lx=0,xl=3499975000,mid;//象形变量,lx是左边界,xl是右边界
    while(lx<=xl){
        mid=(lx+xl)/2;double h=0;
        for(int i=0;i<n;i++){
            if(b[i]<a[i]*mid)h+=a[i]*mid-b[i];
        }h/=mid;
        if(h>p)xl=mid-0.000001;
        else s=mid,lx=mid+0.000001;
    }if(s>3399975000)cout<<-1;//如果不加这一个特判,17就过不了
    else cout<<s;
    return 0;
}

2021/8/27 10:57
加载中...