#include <iostream>
using namespace std;

int main()
{
    const char SternZeichen = '*';
    const char LeerZeichen = ' ';

    int MaxAnzahlLeer =  0; // Wert wird noch berechnet
    int AnzahlSterne = 1; // An der Spitze ein Stern
    int Krone = 0; // Hoehe der Krone
    int Mitte = 0; // Hoehe der Krone
    int Stamm = 0; // Hoehe der Krone

    cout << "Das Tannenbaumprogramm" << endl;
    cout << "Wie hoch soll die Krone sein ? ";
    cin >> Krone;
    cout << "Wie hoch soll die Mitte sein ? ";
    cin >> Mitte;
    cout << "Wie hoch soll der Stamm sein ? ";
    cin >> Stamm;

    if(Krone > Mitte)
    {
        MaxAnzahlLeer = Krone;
    }
    else
    {
        MaxAnzahlLeer = Mitte;
    }

    int BaumHoehe = Krone + Mitte + Stamm;
    int AnzahlLeer = MaxAnzahlLeer;

    for(int Zeile = 0; Zeile < BaumHoehe; Zeile++)
    {
        // Wir sehen ob wir schon bei der Zeile sind
        // bei der die Krone schon fertig ist, oder
        // die Krone und der Stamm.
        if((Zeile == Krone) || (Zeile >= Krone + Mitte))
        {
            AnzahlLeer = MaxAnzahlLeer-1;
            AnzahlSterne = 3;
        }

        for(int leer = 0; leer < AnzahlLeer; leer++)
        {
            cout << LeerZeichen;
        }
        for(int stern = 0; stern < AnzahlSterne; stern++)
        {
            cout << SternZeichen;
        }
        cout << endl; // Neue Zeile beginnen
        AnzahlLeer = AnzahlLeer - 1; // Auf der naechsten Zeile ein Leerzeichen weniger
        AnzahlSterne = AnzahlSterne + 2; // Dafuer zwei Sterne mehr
    }
    return 0;
}