97222024-03-03 16:44:16csdavidKígyózó szavakcpp17Hibás válasz 0/1007ms3416 KiB
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    //ofstream fout("szamok.txt");
    //ifstream fin("be2.txt");
    int h, n;
    int utolso=0, aorb=0;
    cout << "Szavak maximalis hossza: ";
    cin >> h;
    cout << "Kerdesek szama: ";
    cin >> n;
    cout << "Kerdesek: " << endl;
    int horiginal=h;
    while(h>34){

        aorb=1;
        h--;
        if(h>34){
            aorb=2;
        }
        h--;
    }




    long long a[h][28];
    for(auto& alma:a[1])
    {
        alma=1;
    }
    for(auto& alma:a[0])
    {
        alma=1;
    }
    for(int i=0; i<h; i++){
        a[i][0]=0;
        a[i][27]=0;
    }


    for(int i=1; i<h; i++){
        for(int j=1; j<27; j++){
            a[i][j]=a[i-1][j-1]+a[i-1][j+1];
        }
    }


    for(int i=1; i<h; i++){
        for(int j=1; j<27; j++){
            a[i][j]+=a[i-1][j];
        }
    }





    int x;
    int sor = h-1, i;
    string vege;
    for(int it=0; it<n; it++){
        cin >> x;
        vege.clear();
        utolso=aorb;
        sor=h-1;
        if(utolso==0){
            utolso=1;
            while(x>a[sor][utolso]){
                x-=a[sor][utolso];
                utolso++;
            }
            //vege.push_back(utolso+96);
        }
        else{
            sor=horiginal-1;
            while(sor>33&&x>0){
                x--;
                sor--;
                vege.push_back('a');
                utolso=1;
                if(sor>33&&x>0){
                    x--;
                    sor--;
                    vege.push_back('b');
                    utolso=2;
                }
            }
            vege.pop_back();
        }

        sor--;
        while(x>0&&sor>=0){
            //cout << "sor: " << sor << endl << "utolso: " << utolso << endl << "x: " << x << endl<< "a[sor][utolso-1] = " << a[sor][utolso] << endl << endl;
            if(x==1){
                //vege.push_back(utolso+96);
                x--;
            }
            else if(a[sor][utolso-1]>=x-1){
                x--;
                vege.push_back(utolso+96);
                //x-=a[sor][utolso];
                utolso--;
            }
            else{
                vege.push_back(utolso+96);
                x-=a[sor][utolso-1];
                x--;
                utolso++;
            }
            sor--;


        }
        vege.push_back(utolso+96);





        cout << vege << endl;

    }





    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/100
1Hibás válasz0/03ms1688 KiB
2Hibás válasz0/03ms1932 KiB
3Hibás válasz0/53ms2144 KiB
4Hibás válasz0/53ms2228 KiB
5Hibás válasz0/53ms2352 KiB
6Hibás válasz0/53ms2572 KiB
7Hibás válasz0/54ms2780 KiB
8Hibás válasz0/54ms2860 KiB
9Hibás válasz0/54ms2864 KiB
10Hibás válasz0/54ms2996 KiB
11Hibás válasz0/54ms2992 KiB
12Hibás válasz0/56ms3264 KiB
13Hibás válasz0/57ms3144 KiB
14Hibás válasz0/64ms3148 KiB
15Hibás válasz0/64ms3416 KiB
16Hibás válasz0/64ms3256 KiB
17Hibás válasz0/64ms3260 KiB
18Hibás válasz0/74ms3284 KiB
19Hibás válasz0/77ms3168 KiB
20Hibás válasz0/74ms3164 KiB