Pagini recente » Cod sursa (job #1486879) | Cod sursa (job #398426) | Cod sursa (job #331949) | Cod sursa (job #2088832) | Cod sursa (job #2066735)
#include <bits/stdc++.h>
#define MaxN 50005
#define MOD 8191
#define INF 2140000000
#define eps 1e-4
using namespace std;
FILE*IN,*OUT;
double a,b,x,y,P,MaxP,R,MaxR=0,nextx;
double Get(double Y)
{
return a*sqrt(1-Y*Y/b/b);
}
double dist(double x1,double y1,double x2,double y2)
{
return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
int main()
{
IN=fopen("test.in","r");
OUT=fopen("test.out","w");
fscanf(IN,"%lf%lf",&a,&b);
if(b>=a)
{
fprintf(OUT,"%lf",a/2);
return 0;
}
y=b;
x=0;
nextx=Get(y-eps);
for(P=0;;P+=eps)
{
while(dist(P,0,x,y)>dist(P,0,nextx,y-eps))
{
y-=eps;
x=nextx;
nextx=Get(y-eps);
}
if(P-dist(P,0,x,y)>=eps)
{
fprintf(OUT,"%lf\n",P);
return 0;
}
}
return 0;
}