题意:
code:
#include<bits/stdc++.h>
using namespace std;
const double eps=1e-6;
double a,b,c,d,l,r;
double f(double x){
return (c*x+d)/(a*x+b);
}
double simpson(double l,double r){
double mid=(l+r)/2;
return (r-l)*(f(l)+4*f(mid)+f(r))/6;
}
double ask(double l,double r,double eps,double ans){
double mid=(l+r)/2;
double fl=simpson(l,mid),fr=simpson(mid,r);
if(fabs(fl+fr-ans)<=15*eps)return fl+fr+(fl+fr-ans)/15;
return ask(l,mid,eps/2,fl)+ask(mid,r,eps/2,fr);
}
signed main(){
scanf("%lf%lf%lf%lf%lf%lf",&a,&b,&c,&d,&l,&r);
double ans=ask(l,r,eps,simpson(l,r));
printf("%.6f\n",ans);
return 0;
}