wa on #15 (悬关)
查看原帖
wa on #15 (悬关)
658497
letianJOE楼主2024/10/2 14:03
#include<bits/stdc++.h>
#define int long long 
using namespace std;
const double err=1e-7;
const double inf=1e9;
int t;
double n,p1,p2,v1,v2; 
double ans1,ans2,ans3=inf;
main()
{
	cin>>t;
	while(t--)
	{
		cin>>n>>p1>>v1>>p2>>v2;
		if(p1>p2)
			swap(p1,p2),swap(v1,v2);
		ans1*=1.0;
		ans2*=1.0;
		ans1=min( min(p1,n-p1)/v1+n/v1 , min(p2,n-p2)/v2+n/v2);
		ans2=max(p2/v2,(n-p1)/v1);
		double l=p1,r=p2;
		while(r-l>err)
		{
			double mid=(l+r)/2;
			double need1=(mid+min(mid-p1,p1))/v1;
			double need2=(n-mid+min(p2-mid,n-p2))/v2;
			ans3=min(ans3,max(need1,need2)); 
			if(need1>need2)
				r=mid;
			else
				l=mid;
		}
		printf("%.10f\n",min(ans1,min(ans2,ans3)));
	}
	return 0;
}
2024/10/2 14:03
加载中...