求调
查看原帖
求调
537046
大眼仔Happy楼主2023/11/9 20:17

Wrong answer on test 12

#include<bits/stdc++.h>
using namespace std;
#define db double
const int N=2e5+5;
const db eps=1e-15;
int n;db T,sum,ans,num;
struct data{db a,t;}d[N];
bool cmp(data A,data B){return A.t<B.t;}
int main(){
	scanf("%d%lf",&n,&T);
	for(int i=1;i<=n;i++)scanf("%lf",&d[i].a);
	for(int i=1;i<=n;i++)scanf("%lf",&d[i].t),d[i].t-=T;
	for(int i=1;i<=n;i++)sum+=d[i].a*d[i].t,ans+=d[i].a;
	sort(d+1,d+1+n,cmp);
	for(int i=1;i<=n;i++)
	{
		if(sum>-eps)break;
		num=min(d[i].a,sum/d[i].t);
		sum-=d[i].t*num;ans-=num;
	}
	for(int i=n;i>=1;i--)
	{
		if(sum<eps)break;
		num=min(d[i].a,sum/d[i].t);
		sum-=d[i].t*num;ans-=num;
	}
	if(ans<eps)printf("0");else printf("%.15lf",ans);
	return 0;
}
2023/11/9 20:17
加载中...