Warning: session_start(): open(/tmp/sess_6d61103a351c7da9e4dc351277a29f05, O_RDWR) failed: No space left on device (28) in /data/wiki/inc/init.php on line 239
Warning: session_start(): Failed to read session data: files (path: ) in /data/wiki/inc/init.php on line 239
Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/auth.php on line 430
Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/Action/Export.php on line 103
Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/Action/Export.php on line 103
Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/Action/Export.php on line 103
#include
#include
#include
#include
#include
#define maxn 15
using namespace std;
const double eps=1e-7;
int n;
double l,r;
double a[maxn];
double myabs(double now)
{
return now>0 ? now : -now;
}
double judge(double now)
{
double ans=0.0;
for(int i=0;i<=n;i++)
{
ans+=a[i]*pow(now,i);
}
return ans;
}
int main()
{
scanf("%d%lf%lf",&n,&l,&r);
for(int i=n;i>=0;i--)
scanf("%lf",&a[i]);
while(myabs(r-l)>=eps)
{
double mid1=l+((r-l)/3.0);
double mid2=l+((r-l)/3.0*2.0);
if(judge(mid1)>judge(mid2))
{
r=mid2;
}
else
l=mid1;
}
printf("%.5lf\n",l);
}