#include <iostream>
#include <math.h>
using namespace std;
double f(double x)
{
return sin(x*x+2*x);
}
int main() {
double a, b, eps;//Нижний и верхний пределы интегрирования (a, b), погрешность (eps).
cin >> a >> b >> eps;
double I=eps+1, I1=0;//I-предыдущее вычисленное значение интеграла, I1-новое, с большим N.
for (int N=2; (N<=4)||(fabs(I1-I)>eps); N*=2)
{
double h, sum2=0, sum4=0, sum=0;
h=(b-a)/(2*N);//Шаг интегрирования.
for (int i=1; i<=2*N-1; i+=2)
{
sum4+=f(a+h*i);//Значения с нечётными индексами, которые нужно умножить на 4.
sum2+=f(a+h*(i+1));//Значения с чётными индексами, которые нужно умножить на 2.
}
sum=f(a)+4*sum4+2*sum2-f(b);//Отнимаем значение f(b) так как ранее прибавили его дважды.
I=I1;
I1=(h/3)*sum;
}
cout << I1 << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWF0aC5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmRvdWJsZSBmKGRvdWJsZSB4KQp7CglyZXR1cm4gc2luKHgqeCsyKngpOwkKfQogCmludCBtYWluKCkgewoJZG91YmxlIGEsIGIsIGVwczsvL9Cd0LjQttC90LjQuSDQuCDQstC10YDRhdC90LjQuSDQv9GA0LXQtNC10LvRiyDQuNC90YLQtdCz0YDQuNGA0L7QstCw0L3QuNGPIChhLCBiKSwg0L/QvtCz0YDQtdGI0L3QvtGB0YLRjCAoZXBzKS4KCWNpbiA+PiBhID4+IGIgPj4gZXBzOwoJZG91YmxlIEk9ZXBzKzEsIEkxPTA7Ly9JLdC/0YDQtdC00YvQtNGD0YnQtdC1INCy0YvRh9C40YHQu9C10L3QvdC+0LUg0LfQvdCw0YfQtdC90LjQtSDQuNC90YLQtdCz0YDQsNC70LAsIEkxLdC90L7QstC+0LUsINGBINCx0L7Qu9GM0YjQuNC8IE4uCglmb3IgKGludCBOPTI7IChOPD00KXx8KGZhYnMoSTEtSSk+ZXBzKTsgTio9MikKCXsKCQlkb3VibGUgaCwgc3VtMj0wLCBzdW00PTAsIHN1bT0wOwoJCWg9KGItYSkvKDIqTik7Ly/QqNCw0LMg0LjQvdGC0LXQs9GA0LjRgNC+0LLQsNC90LjRjy4KCQlmb3IgKGludCBpPTE7IGk8PTIqTi0xOyBpKz0yKQoJCXsgICAKCQkJc3VtNCs9ZihhK2gqaSk7Ly/Ql9C90LDRh9C10L3QuNGPINGBINC90LXRh9GR0YLQvdGL0LzQuCDQuNC90LTQtdC60YHQsNC80LgsINC60L7RgtC+0YDRi9C1INC90YPQttC90L4g0YPQvNC90L7QttC40YLRjCDQvdCwIDQuCgkJCXN1bTIrPWYoYStoKihpKzEpKTsvL9CX0L3QsNGH0LXQvdC40Y8g0YEg0YfRkdGC0L3Ri9C80Lgg0LjQvdC00LXQutGB0LDQvNC4LCDQutC+0YLQvtGA0YvQtSDQvdGD0LbQvdC+INGD0LzQvdC+0LbQuNGC0Ywg0L3QsCAyLgoJCX0KCQlzdW09ZihhKSs0KnN1bTQrMipzdW0yLWYoYik7Ly/QntGC0L3QuNC80LDQtdC8INC30L3QsNGH0LXQvdC40LUgZihiKSDRgtCw0Log0LrQsNC6INGA0LDQvdC10LUg0L/RgNC40LHQsNCy0LjQu9C4INC10LPQviDQtNCy0LDQttC00YsuIAoJCUk9STE7CgkJSTE9KGgvMykqc3VtOwoJfQoJY291dCA8PCBJMSA8PCBlbmRsOwoJcmV0dXJuIDA7Cn0=