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

int main(){
    system("chcp 1250");
    cout << "Rozwiązywanie równania symetrycznego ax^4+bx^3+cx^2+bx+a = 0\n";
    cout << "Podaj współczynniki (a, b i c) równania oddzielone odstępami: ";
    double a, b, c;
    cin >> a >> b >> c;
    if (a != 0) {
        // równanie y^2 +b/a*y + c/a - 2 = 0
        double delta = b/a*b/a-4*c/a+8;
        int zespolone = 0;
        if (delta > 0) {
            double y1 = (-b/a-sqrt(delta))/2;
            double y2 = (-b/a+sqrt(delta))/2;
            // równanie x^2-y1*x+1 = 0
            delta = y1*y1-4;
            if (delta > 0) {
                cout << "x = " << (y1-sqrt(delta))/2 << endl;
                cout << "x = " << (y1+sqrt(delta))/2 << endl;
            }
            else if (delta == 0)
                cout << "x = " <<  y1/2 << "(dwukrotny)" << endl;
            else zespolone += 2;
            // równanie x^2 - y2 * x + 1 = 0
            delta = y2*y2-4;
            if (delta > 0) {
                cout << "x = " << (y2-sqrt(delta))/2 << endl;
                cout << "x = " << (y2+sqrt(delta))/2 << endl;
            } else if (delta == 0)
                cout << "x = " <<  y2/2 << " (dwukrotny)" << endl;
            else zespolone += 2;
        } else if (delta == 0) {
            double y1 = -b/a/2;
            // równanie x^2-y1*x+1 = 0
            delta = y1*y1-4;
            if (delta > 0) {
                cout << "x = " << (y1-sqrt(delta))/2 << " (dwukrotny)" << endl;
                cout << "x = " << (y1+sqrt(delta))/2 << " (dwukrotny)" << endl;
            } else if (delta == 0)
                cout << "x = " <<  y1/2 << " (czterokrotny)" << endl;
            else zespolone += 4;
        } else /* Równanie nie ma pierwiastków rzeczywistych. */
            zespolone = 4;
    if (zespolone != 0) cout << zespolone << " pierwiastki zespolone.\n";
    } else
        cout << "a = 0, równanie nie jest równaniem 4 stopnia.\n";
    system("pause");
    return 0;
}