#include <iostream>
using namespace std;
// Funkcja
double f(double x)
{
return x * x * x - x - 2;
}
int main()
{
double a, b, eps, srodek;
// Odczyt danych ze standardowego wejścia
cin >> a >> b >> eps;
// Sprawdzenie warunku zmiany znaku
if (f(a) * f(b) >= 0)
{
return 0;
}
// Metoda bisekcji
while ((b - a) > eps)
{
srodek = (a + b) / 2;
if (f(srodek) == 0)
break;
else if (f(a) * f(srodek) < 0)
b = srodek;
else
a = srodek;
}
srodek = (a + b) / 2;
// Wynik
cout << srodek << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIEZ1bmtjamEKZG91YmxlIGYoZG91YmxlIHgpCnsKICAgIHJldHVybiB4ICogeCAqIHggLSB4IC0gMjsKfQoKaW50IG1haW4oKQp7CiAgICBkb3VibGUgYSwgYiwgZXBzLCBzcm9kZWs7CgogICAgLy8gT2Rjenl0IGRhbnljaCB6ZSBzdGFuZGFyZG93ZWdvIHdlasWbY2lhCiAgICBjaW4gPj4gYSA+PiBiID4+IGVwczsKCiAgICAvLyBTcHJhd2R6ZW5pZSB3YXJ1bmt1IHptaWFueSB6bmFrdQogICAgaWYgKGYoYSkgKiBmKGIpID49IDApCiAgICB7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgLy8gTWV0b2RhIGJpc2VrY2ppCiAgICB3aGlsZSAoKGIgLSBhKSA+IGVwcykKICAgIHsKICAgICAgICBzcm9kZWsgPSAoYSArIGIpIC8gMjsKCiAgICAgICAgaWYgKGYoc3JvZGVrKSA9PSAwKQogICAgICAgICAgICBicmVhazsKICAgICAgICBlbHNlIGlmIChmKGEpICogZihzcm9kZWspIDwgMCkKICAgICAgICAgICAgYiA9IHNyb2RlazsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGEgPSBzcm9kZWs7CiAgICB9CgogICAgc3JvZGVrID0gKGEgKyBiKSAvIDI7CgogICAgLy8gV3luaWsKICAgIGNvdXQgPDwgc3JvZGVrIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0K