为什么这个代码直接编译错误,测评机炸了?
  • 板块灌水区
  • 楼主WaterSky
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/12/20 16:40
  • 上次更新2023/12/20 19:57:03
查看原帖
为什么这个代码直接编译错误,测评机炸了?
708963
WaterSky楼主2023/12/20 16:40
#include<bits\stdc++.h>
using namespace std;
long long n,p;
double a[1000005],b[1000005];
double start,finish,mid;
bool cheak(double x)
{
	double S=0;
	for(int i=1;i<=n;i++)
	{
		if(b[i]<x*a[i])
			S+=a[i]*x-b[i];
		if(S>p*x) return 0;	
	}
	return S<=p*x;
}
int main(){
	cin>>n>>p;
	for(int i=1;i<=n;i++) cin>>a[i]>>b[i];
	finish=1e10;
	while(finish-start>1e-6)
	{
		mid=(finish+start)/2;
		if(cheak(mid)) start=mid;
		else finish=mid;
	}
	if(finish==0) {cout<<-1;}
	else printf("%f",start);
	return 0;
} 
2023/12/20 16:40
加载中...