#include<bits/stdc++.h>
#define int double
using namespace std;
int a,b;
long long r=1,l=2;
double c;
bool check(long long x)
{
double s1=double(sqrt(double(x*1.0-1.0)));
double s2=double(sqrt(double(x*1.0)));
c=double(double(a*1.0)/s1-double(a*1.0)/s2);
if(c>double(b*1.000000000))
return true;
else
return false;
}
signed main()
{
r<<=60;
cin>>a>>b;
c=double(double(a)/sqrt(1.0000000)-double(a)/sqrt(2.0000000));
if(c<=double(b*1.000000000))
{
cout<<setprecision(26)<<a;
return 0;
}
while(l<r)
{
long long mid=(l+r)/2+1;
if(check(mid)==false)
{
r=mid-1;
}
else
{
l=mid;
}
}
c=double(double(double(b)*double(l*1.0-1.0))+double(double(a*1.0000000000)/double(sqrt(double(l*1.000)))));
cout<<setprecision(26)<<c;
return 0;
}
题目要求是误差小于10^-6,代码与最后一个样例误差超过10却还是ac了