#include <iostream>                //id=240242103 
#include <cmath>
#include <iomanip>
using namespace std;
 
int main() {
    double x0, x1, x2, f0, f1, f2;
    double e = 1e-8;
    int step = 1;
 
    cout << "Enter the value of x0: ";
    cin >> x0;
    cout << "Enter the value of x1: ";
    cin >> x1;
 
    f0 = 2*x0*x0*x0 + 3*x0 - 1;
    f1 = 2*x1*x1*x1 + 3*x1 - 1;
 
    if (f0 * f1 > 0) {
        cout << "Invalid interval! f(x0) and f(x1) must have opposite signs." << endl;
        return 0;
    }
 
    cout << fixed << setprecision(6);
    cout << "\nIteration  x0        x1        x2        f0         f1         f2\n";
    cout << "-------------------------------------------------------------------------\n";
 
    do {
        x2 = (x0 + x1) / 2;
        f2 = 2*x2*x2*x2 + 3*x2 - 1;
 
        cout << step << "\t" << x0 << "\t" << x1 << "\t" << x2
             << "\t" << f0 << "\t" << f1 << "\t" << f2 << endl;
 
        if (f0 * f2 < 0)
            x1 = x2;
        else
            x0 = x2;
 
        f0 = 2*x0*x0*x0 + 3*x0 - 1;
        f1 = 2*x1*x1*x1 + 3*x1 - 1;
        step++;
    } while (fabs(x1 - x0) >= e);
 
    cout << "\nApproximate Root = " << x2 << endl;
    return 0;
}
 
 
				I2luY2x1ZGUgPGlvc3RyZWFtPiAgICAgICAgICAgICAgICAvL2lkPTI0MDI0MjEwMyAKI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8aW9tYW5pcD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewogICAgZG91YmxlIHgwLCB4MSwgeDIsIGYwLCBmMSwgZjI7CiAgICBkb3VibGUgZSA9IDFlLTg7CiAgICBpbnQgc3RlcCA9IDE7CgogICAgY291dCA8PCAiRW50ZXIgdGhlIHZhbHVlIG9mIHgwOiAiOwogICAgY2luID4+IHgwOwogICAgY291dCA8PCAiRW50ZXIgdGhlIHZhbHVlIG9mIHgxOiAiOwogICAgY2luID4+IHgxOwoKICAgIGYwID0gMip4MCp4MCp4MCArIDMqeDAgLSAxOwogICAgZjEgPSAyKngxKngxKngxICsgMyp4MSAtIDE7CgogICAgaWYgKGYwICogZjEgPiAwKSB7CiAgICAgICAgY291dCA8PCAiSW52YWxpZCBpbnRlcnZhbCEgZih4MCkgYW5kIGYoeDEpIG11c3QgaGF2ZSBvcHBvc2l0ZSBzaWducy4iIDw8IGVuZGw7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgY291dCA8PCBmaXhlZCA8PCBzZXRwcmVjaXNpb24oNik7CiAgICBjb3V0IDw8ICJcbkl0ZXJhdGlvbiAgeDAgICAgICAgIHgxICAgICAgICB4MiAgICAgICAgZjAgICAgICAgICBmMSAgICAgICAgIGYyXG4iOwogICAgY291dCA8PCAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIjsKCiAgICBkbyB7CiAgICAgICAgeDIgPSAoeDAgKyB4MSkgLyAyOwogICAgICAgIGYyID0gMip4Mip4Mip4MiArIDMqeDIgLSAxOwoKICAgICAgICBjb3V0IDw8IHN0ZXAgPDwgIlx0IiA8PCB4MCA8PCAiXHQiIDw8IHgxIDw8ICJcdCIgPDwgeDIKICAgICAgICAgICAgIDw8ICJcdCIgPDwgZjAgPDwgIlx0IiA8PCBmMSA8PCAiXHQiIDw8IGYyIDw8IGVuZGw7CgogICAgICAgIGlmIChmMCAqIGYyIDwgMCkKICAgICAgICAgICAgeDEgPSB4MjsKICAgICAgICBlbHNlCiAgICAgICAgICAgIHgwID0geDI7CgogICAgICAgIGYwID0gMip4MCp4MCp4MCArIDMqeDAgLSAxOwogICAgICAgIGYxID0gMip4MSp4MSp4MSArIDMqeDEgLSAxOwogICAgICAgIHN0ZXArKzsKICAgIH0gd2hpbGUgKGZhYnMoeDEgLSB4MCkgPj0gZSk7CgogICAgY291dCA8PCAiXG5BcHByb3hpbWF0ZSBSb290ID0gIiA8PCB4MiA8PCBlbmRsOwogICAgcmV0dXJuIDA7Cn0KCg==