社区讨论
听说灌水区大佬多
灌水区参与者 5已保存回复 11
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 11 条
- 当前快照
- 1 份
- 快照标识符
- @lo16leum
- 此快照首次捕获于
- 2023/10/22 16:02 2 年前
- 此快照最后确认于
- 2023/11/02 15:37 2 年前
P3743,95pts求调
CPP#include<bits/stdc++.h>
using namespace std;
int n;
double p;
const int N=1e6+10;
double a[N],b[N];
double ans=-1;
double sum[N];
bool check(double x){
double s=p*x;
for(int i=1;i<=n;i++){
if(b[i]>=a[i]*x)continue;
s-=a[i]*x-b[i];
}
return s>=0;
}
int main(){
double sump=0;
cin>>n>>p;
for(int i=1;i<=n;i++){
cin>>a[i]>>b[i];
}
for(int i=1;i<=n;i++){
sump+=a[i];
}
if(sump<=p){
cout<<-1;
return 0;
}
double l=1e-9,r=100000,mid;
while(r-l>=1e-9){
mid=(l+r)/2;
if(check(mid)){
ans=max(mid,ans);
l=mid+1e-9;
}
else r=mid-1e-9;
}
cout<<ans;
return 0;
}
回复
共 11 条回复,欢迎继续交流。
正在加载回复...