#include <iostream>         // cin és cout parancsok
#include <vector>           // vector adattípus
#include <algorithm>        // max függvény
#include <iterator>         // distance függvény
#include <numeric>          // accumulate függvény

using namespace std;

int main()
{
    setlocale(LC_ALL, "");
    // 1. feladat - átmásolni az adatokat ide egy megfelelő adatszerkezetbe, pl. vectorba
    vector<int> uvegek = {5, 2, 2, 4, 3, 2, 4, 10, 5, 5, 3, 5, 4, 3, 3};
    int lekvar;         // Mari néni ennyi lekvárt akar eltenni

    cout << "2. feladat" << endl;
    cout << "Mari néni lekvárja (dl): ";
    cin >> lekvar;
    // --------------------------------------------------------------------------------------------

    cout << "3. feladat" << endl;
    // C++ megoldás
    int legn_uveg = *max_element(uvegek.begin(), uvegek.end());
    auto it = find(uvegek.begin(), uvegek.end(), legn_uveg);
    auto sorszama = distance(uvegek.begin(), it) + 1;
    cout << "A legnagyobb üveg: " << legn_uveg << " dl és " << sorszama << ". a sorban." << endl;

    // "Klasszikus" megoldás: Programozási tétel segítségével (maximumkeresés)
    int legn_uveg2, sorszama2;
    legn_uveg2 = uvegek[0];
    for(int i = 1; i < uvegek.size(); i++)
    {
        if(uvegek[i] > legn_uveg2)
        {
            legn_uveg2 = uvegek[i];
            sorszama2 = i + 1;
        }
    }
    cout << "A legnagyobb üveg: " << legn_uveg2 << " dl és " << sorszama2 << ". a sorban." << endl;
    // --------------------------------------------------------------------------------------------

    cout << "4. feladat" << endl;
    // C++ megoldás
    if(accumulate(uvegek.begin(), uvegek.end(), 0) >= lekvar)
    {
        cout << "Elegendő üveg volt." << endl;
    }
    else
    {
        cout << "Maradt lekvár." << endl;
    }

    // "Klasszikus" megoldás: Programozási tétel segítségével (sorozatszámítás - öszegzés)
    int osszes_urtartalom = 0;
    for(int i = 0; i < uvegek.size(); i++)
        osszes_urtartalom += uvegek[i];
    if(osszes_urtartalom >= lekvar)
    {
        cout << "Elegendő üveg volt." << endl;
    }
    else
    {
        cout << "Maradt lekvár." << endl;
    }
    return 0;
}
