#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cmath>

using namespace std;

int main()
{
    setlocale(LC_ALL,"hun");
    cout << "1. feladat: fájlok beolvasása" << endl;

    char foglaltsag[300]; ///ide olvassuk be a foglaltsag.txt adatait
    ifstream f;
    f.open("foglaltsag.txt");
    if(f.fail()) {

        cout << "A fájl nem nyitható meg";
        cin.get();
        exit(1);
    }
    char c;
    int i=0;
    while(f.get(c)) {

        if(c!='\n') {   ///A sorvégeket nem írjuk bele a tömbbe
        foglaltsag[i]=c;
        /* csak teszt
        if(i>0 && i%20==0) cout << endl;
        cout << foglaltsag[i];
        */
        i++;
        }

    }

    f.close();

    char kategoria[300]; ///ide olvassuk be a kategoria.txt adatait
    ifstream f2;
    f2.open("kategoria.txt");
    if(f2.fail()) {

        cout << "A fájl nem nyitható meg";
        cin.get();
        exit(1);
    }

    int szam;
    i=0;
    char c2;
    while(f2.get(c2)) {

        if(c2!='\n') {   ///A sorvégeket nem írjuk bele a tömbbe
        szam=(int) c2;
        kategoria[i]=szam;
        i++;
        }
    }

    f2.close();

    cout << "2. feladat: szék foglaltságának jelzése" << endl;
    int sor, szek;
    int sorszam;

    cout << "Adja meg a sor számát (1-15 ig): ";
    cin >> sor;
    cout << "Adja meg a szék számát (1-20 ig): ";
    cin >> szek;
    sorszam=(sor-1)*20+szek-1;
    //cout << sorszam;

    if(foglaltsag[sorszam]=='o') cout << "A szék szabad" << endl;
    else cout << "A szék foglalt" << endl;

    cout << "3. feladat: eladott helyek száma" << endl;
    int db=0;
    for(int i=0;i<300;i++) {

        if(foglaltsag[i]=='x') db++;

    }
    cout << "Az eladott jegyek száma: " << db << ", ami a jegyek " << round(db/3) << " %-a." << endl;

    cout << "4. feladat: A legtöbbet eladott kategóriájú jegy." << endl;

    int darab[5]={0,0,0,0,0};


    for(int i=0;i<300;i++) {

        if(foglaltsag[i]=='x') {

            if(kategoria[i]=='1') darab[0]++;
            else if(kategoria[i]=='2') darab[1]++;
            else if(kategoria[i]=='3') darab[2]++;
            else if(kategoria[i]=='4') darab[3]++;
            else if(kategoria[i]=='5') darab[4]++;
        }

    }
    int maximum=darab[0];
    int maximumindex=0;
    ///maximum=max( darab[4] , max (darab[3], max (darab[2], max(darab[0],darab[1]))));


    for(int i=1; i<5; i++) {

        if(darab[i]>maximum) {

            maximum=darab[i];
            maximumindex=i;

        }

    }
    cout << "A legtöbbet eladott kategória: " << maximumindex+1 << endl;

    cout << "5. feladat: A színház eddigi bevétele." << endl;

    cout << "A bevétel: " << darab[0]*5000+darab[1]*4000+darab[2]*3000+darab[3]*2000+darab[4]*1500<< endl;

    cout << "6. feladat: Egyedülálló üres helyek száma." << endl;
    int ures=0;
    for(int j=0; j<15; j++) {
        if(foglaltsag[20*j+19]=='o' && (foglaltsag[20*j+19-1]=='x')) ures++; //utolsó szék xo, akkor üres
        if(foglaltsag[20*j]=='o' && (foglaltsag[20*j+1]=='x')) ures++; //első szék ox, akkor üres
        for(int i=1; i<19; i++) {

            if(foglaltsag[20*j+i]=='o' && foglaltsag[20*j+i-1]=='x' && foglaltsag[20*j+i+1]=='x') ures++;

        }

    }

    cout << "Az egyedülálló helyek száma: " << ures << endl;

    cout << "7. feladat: Szabad helyek kategóriával." << endl;


    ofstream f3;
    f3.open("szabad.txt");
    if(f3.fail()) {

        cout << "A fájl nem nyitható meg";
        cin.get();
        exit(1);
    }


    for(int i=0; i<300; i++) {
            if((i+1)%20==0) {
                if(foglaltsag[i]=='o') f3 << kategoria[i] << endl;
                else f3 << foglaltsag[i] << endl;
            } else {
                if(foglaltsag[i]=='o') f3 << kategoria[i];
                else f3 << foglaltsag[i];
            }

    }
    f3.close();
    cin.get();
    return 0;
}
