113972024-09-08 19:49:14Vkrisztian01Kígyózó szavakcpp17Hibás válasz 20/10057ms1436 KiB
#include <iostream>
#include<bits/stdc++.h>
typedef long long ll;
const ll m = 1e9;

using namespace std;

int main()
{
    ios_base::sync_with_stdio(NULL);
    cin.tie(nullptr);

    ll h,n;
    cin>>h>>n;

    vector<vector<ll> > dp(h + 1,vector<ll>(26,0));

    for(int j = 0; j<26; j++) dp[0][j] = 1;

    for(int i=1; i< h; i++)
    {
        dp[i][0] = dp[i-1][1] + 1;

        for(int j=1;j<25;j++)
        {
            dp[i][j] = min((ll)INT_MAX,dp[i-1][j-1] + dp[i-1][j+1] + 1);
        }

        dp[i][25] = dp[i-1][24];
    }

    while(n--)
    {
        ll k;
        cin>>k;

        string ans = "";

        int letter = 0;

        while(dp[h - 1][letter] < k)
        {
            k -= dp[h - 1][letter];
            letter++;
        }

        ans += 'a' + letter;

        for(int i = h - 2; i>=0; i--)
        {
            if(k == 1) break;

            k--;

            vector<int> options;
            if(0 < letter)
                options.push_back(letter - 1);
            if(letter < 25)
                options.push_back(letter + 1);

            for(int j: options)
            {
                if(dp[i][j] < k)
                {
                    k -= dp[i][j];
                }
                else
                {
                    ans += 'a' + j;
                    letter = j;
                    break;
                }
            }
        }

        cout<<ans<<"\n";
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base20/100
1Elfogadva0/02ms360 KiB
2Elfogadva0/03ms412 KiB
3Elfogadva5/53ms516 KiB
4Elfogadva5/53ms360 KiB
5Elfogadva5/53ms360 KiB
6Elfogadva5/53ms360 KiB
7Hibás válasz0/54ms632 KiB
8Hibás válasz0/54ms504 KiB
9Hibás válasz0/524ms804 KiB
10Hibás válasz0/519ms752 KiB
11Hibás válasz0/529ms796 KiB
12Hibás válasz0/530ms872 KiB
13Hibás válasz0/557ms1328 KiB
14Hibás válasz0/614ms644 KiB
15Hibás válasz0/629ms832 KiB
16Hibás válasz0/618ms888 KiB
17Hibás válasz0/617ms656 KiB
18Hibás válasz0/717ms640 KiB
19Hibás válasz0/754ms1436 KiB
20Hibás válasz0/720ms760 KiB