#include <iostream>
#include <print>

// Variablen fuer 1. Gleichung
double a1, b1, c1;
// Variablen fuer 2. Gleichung
decltype(a1) a2, b2, c2;

// main() Funktion
int main()
{
    // Hinweis auf Programmfunktion ausgeben
    std::print("Loesung Gleichungssystem mit zwei Unbekannten:\n"
        "\tA1x + B1y + C1 = 0\n\tA2x + B2y + C2 = 0\n"
        "Alle Koeffizienten muessen ungleich 0 sein!\n"
        "(A1 B1 C1)? ");
    // Koeffizienten der 1. Gleichung einlesen
    std::cin >> a1 >> b1 >> c1;
    std::print("(A2 B2 C2)? ");
    // Koeffizienten der 2. Gleichung einlesen
    std::cin >> a2 >> b2 >> c2;

    // Koeffizienten normieren und Gleichung nach x aufloesen
    // x = -B1Ny - C1N
    // x = -B2Ny - C2N
    auto b1Norm = -b1 / a1;
    auto c1Norm = -c1 / a1;
    auto b2Norm = -b2 / a2;
    auto c2Norm = -c2 / a2;
    // Durch Gleichsetzen der Gleichungen nun Y ausrechnen
    // -B1Ny - C1N = -B2Ny - C2N
    // y = (C2N-C1N) / (B1N - B2N)
    auto y = (c2Norm - c1Norm) / (b1Norm - b2Norm);
    // X nun ausrechnen durch einsetzen des Y-Wertes in 1. Gleichung
    auto x = (-b1 * y - c1) / a1;
    // Und Ergebnis ausgeben
    std::println("Ergebnis: X = {}, Y = {}", x, y);
}
