#include <iostream>
#include <cmath>
#include <functional>
#include <iomanip>
using namespace std;
double solve(function<double (double)> f, double a, double b, double eps)
{
if (a > b) swap(a, b);
while ( abs(a - b) > eps ) {
double x = (a + b) / 2.0;
if ( f(a) * f(x) < 0 )
b = x;
else a = x;
}
return (a + b) / 2.0;
}
int main()
{
auto f1 = [](double x)->double { return 2 * pow(x, 2.0) - pow(0.5, x) - 3; };
cout << fixed << setprecision(11) << solve( f1, 1, 2, 0.00001 );
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxmdW5jdGlvbmFsPgojaW5jbHVkZSA8aW9tYW5pcD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApkb3VibGUgc29sdmUoZnVuY3Rpb248ZG91YmxlIChkb3VibGUpPiBmLCBkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSBlcHMpCnsKICAgIGlmIChhID4gYikgc3dhcChhLCBiKTsKICAgIHdoaWxlICggYWJzKGEgLSBiKSA+IGVwcyApIHsKICAgICAgICBkb3VibGUgeCA9IChhICsgYikgLyAyLjA7CiAgICAgICAgaWYgKCBmKGEpICogZih4KSA8IDAgKQogICAgICAgICAgICBiID0geDsKICAgICAgICBlbHNlIGEgPSB4OwogICAgfQogICAgcmV0dXJuIChhICsgYikgLyAyLjA7Cn0KIAppbnQgbWFpbigpCnsKICAgIGF1dG8gZjEgPSBbXShkb3VibGUgeCktPmRvdWJsZSB7IHJldHVybiAyICogcG93KHgsIDIuMCkgLSBwb3coMC41LCB4KSAtIDM7IH07CiAgICBjb3V0IDw8IGZpeGVkIDw8IHNldHByZWNpc2lvbigxMSkgPDwgc29sdmUoIGYxLCAxLCAyLCAwLjAwMDAxICk7CiAgICByZXR1cm4gMDsKfQ==