9915 2024. 03. 18 15:52:07 111 Kígyózó szavak cpp17 Elfogadva 100/100 8ms 3760 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

int mem[26][1001];

int calc(int c,int n){
	if(c<0||c>=26)return 0;
	if(n==1)return 1;
	if(mem[c][n])return mem[c][n];
	return mem[c][n]=min(1+calc(c-1,n-1)+calc(c+1,n-1),(int)1e18);
}

signed main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
#ifdef CB
	freopen("be2.txt","r",stdin);
//	freopen("out.txt","w",stdout);
#endif
    int H,N;
    cin>>H>>N;
    for(int i=0;i<N;i++){
		int x;
		cin>>x;
		string s;
		int y=0;
		char c='a';
		while((y+=calc(c-'a',H))<x)c++;
		s+=c;
		x-=y-calc(c-'a',H);
		x--;
		while(x>0){
			x--;
			if(c=='a'){
				c++;
			}
			else if(calc(c-1-'a',H-s.size())>x){
				c--;
			}
			else{
				x-=calc(c-1-'a',H-s.size());
				c++;
			}
			s+=c;
		}
		cout<<s<<'\n';
    }
	return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 100/100
1 Elfogadva 0/0 3ms 1712 KiB
2 Elfogadva 0/0 3ms 2096 KiB
3 Elfogadva 5/5 3ms 2308 KiB
4 Elfogadva 5/5 3ms 2516 KiB
5 Elfogadva 5/5 3ms 2600 KiB
6 Elfogadva 5/5 3ms 2744 KiB
7 Elfogadva 5/5 3ms 2824 KiB
8 Elfogadva 5/5 3ms 2964 KiB
9 Elfogadva 5/5 4ms 3408 KiB
10 Elfogadva 5/5 4ms 3580 KiB
11 Elfogadva 5/5 6ms 3664 KiB
12 Elfogadva 5/5 6ms 3704 KiB
13 Elfogadva 5/5 8ms 3760 KiB
14 Elfogadva 6/6 4ms 3520 KiB
15 Elfogadva 6/6 6ms 3672 KiB
16 Elfogadva 6/6 4ms 3688 KiB
17 Elfogadva 6/6 4ms 3532 KiB
18 Elfogadva 7/7 4ms 3568 KiB
19 Elfogadva 7/7 8ms 3756 KiB
20 Elfogadva 7/7 4ms 3576 KiB