#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <vector>
#include <fstream>
using namespace std;

#define ellenoriz(felt, pont) if (felt) pont++; else cerr << "Nem teljesul a feltetel a " << __LINE__<< ". sorban." <<endl;

/* Szabályok:
    - csak az a beugró érvényes, amely nem tartalmaz semmilyen változtatást a main()-ben,
        és már nincs benne kommentezve semmi az "//idaig" sor után
    - az "ellenoriz"-en kívül nem tartalmaz #define sorokat, és azt sem szabad megváltoztatni
    - új #include megengedett a C/C++ standard könyvtárbeli elemek közül
*/

// Innentol

// Idaig

int main()
{
    int pont = 0;
    srand(time(0));
/*
    Sportolo v1 = uj_sportolo("Kati", 53.5);
    ellenoriz(v1.nev == "Kati" && v1.egyeni_csucs == 53.5 && v1.aktualis_pont==0, pont);

    float v1pont = rand()%30/10.0+1;
    kap_pontot(v1, v1pont);
    ellenoriz(v1.aktualis_pont==v1pont, pont);

    Verseny v;
    benevez(v, uj_sportolo("A", 10));
    benevez(v, uj_sportolo("B", 20));
    benevez(v, uj_sportolo("C", 30));
    benevez(v, uj_sportolo("D", 40));
    benevez(v, uj_sportolo("E", 50));
    ellenoriz(v.v.size()==5 && v.v[0].nev=="A", pont);

    vector<float> randompont(5);
    for (int i=0; i<5; i++)
    {
        randompont[i] = rand()%20+20+i/5.0; //garantáltan nem lesz két egyforma pontszám
        kap_pontot(v.v[i], randompont[i]);  //a randompont tömbben megjegyezzük a pontszámot, hogy a pontszámokat átíró turpisságokat megelőzzük
    }
    ellenoriz(uj_egyeni_csucs(v.v[0]) && !uj_egyeni_csucs(v.v[4]), pont);

    vector<int> h = helyezesek(v);  //a legtöbb aktuális pontot kapó sportoló helyezése 1, a következőé 2, stb..
    vector<float> rp(5); //rp:rendezett pontszámok
    for (int i=0;i<5;i++)
    {
        rp[h[i]-1] = (v.v[i].aktualis_pont); // ha jól dolgoztál, az rp-ben rendezetten jellenek így meg a pontszámok.
    }
    // sorrend helyességének ellenőrzése:
    ellenoriz(rp[0] > rp[1] && rp[1] > rp[2] && rp[2] > rp[3] && rp[3] > rp[4], pont );
    // pontszám értékek megtartásának ellenőrzése:
    ellenoriz(v.v[0].aktualis_pont == randompont[0] && v.v[2].aktualis_pont == randompont[2] && v.v[4].aktualis_pont == randompont[4] , pont)
*/
    cout << endl << pont << "/6 pont";
}
