256022026-02-22 16:21:23999Kígyózó szavakcpp17Futási hiba 30/1003ms512 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;
#define int long long

string s(int ch,int mxl,vector<array<int,26>> &hany, int k){
    if(mxl==0||k==1)return "";
    k--;
    if(ch==0){
        return 'b'+s(ch+1,mxl-1,hany,k);
    }
    if(ch==25){
        return 'y'+s(ch-1,mxl-1,hany,k);
    }
    if(hany[mxl][ch-1]>=k){
        char c='a'+(ch-1);
        return c+s(ch-1,mxl-1,hany,k);
    }
    char c='a'+(ch+1);
    k-=hany[mxl][ch-1];
    return c+s(ch+1,mxl-1,hany,k);

}


signed main() {
    int n,h;cin>>h>>n;
    if(h>64)return -1;
    h=min(h,64LL);
    vector<array<int,26>> dp(h+1),hany(h+1);
    for(int i = 0;i<26;i++){
        dp[1][i]=1;
        hany[1][i]=1;
    }
    for(int i = 2;i<=h;i++){
        for(int j = 0;j<26;j++){
            dp[i][j]=(j>0?dp[i-1][j-1]:0)+(j<25?dp[i-1][j+1]:0);
            hany[i][j]=hany[i-1][j]+dp[i][j];
        }
    }
    /*for(int j = 0;j<26;j++){
        cout<<j<<": ";
        for(int i = 1;i<=h;i++){
            cout<<dp[i][j]<<", ";
        }cout<<endl;
    }*/
    while(n--){
        int k;cin>>k;
        string ans="";
        int kezdobet=0;
        for(int i = 0;i<26;i++){
            if(k<=hany[h][i]){
                kezdobet=i;
                break;
            }
            k-=hany[h][i];
        }
        ans+='a'+kezdobet;
        ans+=s(kezdobet,h-1,hany,k);
        cout<<ans<<endl;
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base30/100
1Elfogadva0/01ms512 KiB
2Elfogadva0/02ms316 KiB
3Elfogadva5/52ms316 KiB
4Elfogadva5/52ms500 KiB
5Elfogadva5/52ms316 KiB
6Elfogadva5/52ms316 KiB
7Elfogadva5/53ms316 KiB
8Elfogadva5/53ms316 KiB
9Futási hiba0/51ms316 KiB
10Futási hiba0/51ms316 KiB
11Futási hiba0/51ms316 KiB
12Futási hiba0/51ms316 KiB
13Futási hiba0/51ms316 KiB
14Futási hiba0/61ms508 KiB
15Futási hiba0/61ms344 KiB
16Futási hiba0/61ms316 KiB
17Futási hiba0/61ms316 KiB
18Futási hiba0/71ms508 KiB
19Futási hiba0/71ms500 KiB
20Futási hiba0/71ms316 KiB