#include <iostream>
#include <cmath>
using namespace std;

int main(){
    system("chcp 1250");

    cout << "Rozwiązywanie równania symetrycznego ax^3+bx^2+bx+a = 0\n";
    cout << "Podaj współczynniki (a i b) równania oddzielone odstępami: ";
    double a, b;
    cin >> a >> b;
    if (a != 0) {
        double x1 = -1;
        // x2 i x3 są pierwiastkami równania ax^2 + (b-a)x + a
        double delta = (b-3*a)*(a+b);
        cout << "Pierwiastki równania:" << endl;
        cout << "x = " << x1;
        if (delta > 0) {
            double x2 = (a-b-sqrt(delta))/(2*a);
            double x3 = (a-b+sqrt(delta))/(2*a);
            cout << "\nx = " << x2 << endl;
            cout << "x = " << x3 << endl;
        } else if (delta == 0) {
            double x2, x3;
            x2 = x3 = (a-b)/(2*a);
            if (x2 == -1)
                cout << " (pierwiastek trzykrotny)\n";
            else
                cout << "\nx = " << x2 << " (pierwiastek dwukrotny)\n";
        } else {
            cout << " (jedyny pierwiastek rzeczywisty)\n";
            double re = (a-b)/(2*a);
            double im = sqrt(-delta)/(2*a);
            cout << "Pierwiastki zespolone:\n";
            cout << "x = " << re << " - " << im << "i\n";
            cout << "x = " << re << " + " << im << "i\n";
        }
    } else
        cout << "a = 0, równanie nie jest równaniem trzeciego stopnia.\n";
    system("pause");
    return 0;
}