#include <iostream>
#include <cstdlib>
int main()
{
    //Zmienna potrzebna do ustalenia iloci spacji pomiędzy dwoma rodkowymi gwiazdkami
    unsigned short k = 3;
    //Szerokoć koperty
    unsigned short width;
    //Wczytanie szerokoci koperty (wysokoć jest 2 razy mniejsza)
    std::cout << "Podaj szerokosc koperty (10 - 50): ";
    std::cin >> width;
    //Jeżeli rozmiar jest mniejszy od 10 bšd większy od 50 to program wypisuje błšd i zakańcza działanie
    if (width < 10 || width > 50) {
        std::cout << "Bledny rozmiar!" << std::endl;
    }
    //W przeciwnym wypadku rysuje zaklejonš kopertę
    else {
        //Pętla rysujšca kopertę. Działa dopóki zmianna 'i' jest mniejsza od wysokoci koperty
        //(czyli połowy szerokoci)
        for (unsigned short i = 0; i < width / 2; ++i) {
            //Jeżeli jest to górna częć lub spód koperty rysuje same gwiazdki
            //i wykonuje kolejny przebieg pętli
            if (i == 0 || i == width / 2 - 1) {
                for (unsigned short j = 0; j < width; ++j)
                    std::cout << "*";
                std::cout << std::endl;
                //Wymuszenie kolejnego obiegu pętli
                continue;
            }
            //Tutaj program rysuje całe wnętrze koperty
            //Najpierw lewa cianka
            std::cout << "*";
            //Tutaj program wypisuje odpowiedniš iloć spacji pomiędzy ciankš, a kolejnš gwiazdkš,
            //jeżeli sobie to narysujesz na kartce to zobaczysz, że iloć spacji jest większa o jeden
            //stšd j < i
            for (unsigned short j = 1; j < i; ++j)
                std::cout << " ";
            //Po wypisaniu spacji program wypisuje kolejnš gwiazdkę
            std::cout << "*";
            //To też możesz sobie sprawdzić rysujšc sobie jakš kopertę na kartce.
            //Dla i = 1 jest to width - 4 (k = 3) (i + k = 4)
            //Dla i = 2 jest to width - 6 (k = 4) (i + k = 6)
            //Dla i = 3 jest to width - 8 (k = 5) (i + k = 8) itd.
            //stšd też k, które zwiększa się o jeden na końcu pętli
            for (unsigned short j = 0; j < width - (i + k); ++j)
                std::cout << " ";
            //Po wypisaniu spacji program wypisuje kolejnš gwiazdkę
            std::cout << "*";
            //Tutaj robimy to samo co dwa fory wyżej (iloć spacji jest taka sama)
            for (unsigned short j = 1; j < i; ++j)
                std::cout << " ";
            //Prawa cianka koperty
            std::cout << "*" << std::endl;
            //Zwiększenie zmiennek 'k' o 1
            ++k;
        }
    }
    std::cout << std::endl;
    system("PAUSE");
    return 0;
}