1237 | 2022. 03. 27 19:38:57 | k_balint | Kígyózó szavak | cpp14 | Elfogadva 100/100 | 8ms | 2660 KiB |
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll inf=2e9;
int n,q;
ll dp[1003][26];
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
for(int i=0;i<26;i++){
dp[1][i]=1;
}
for(int i=2;i<=1000;i++){
for(int j=0;j<26;j++){
dp[i][j]=1;
if(j) dp[i][j]+=dp[i-1][j-1];
if(j<25) dp[i][j]+=dp[i-1][j+1];
dp[i][j]=min(dp[i][j],inf);
}
}
cin>>n>>q;
while(q--){
string ans="";
int k; cin>>k;
int let=0;
while(dp[n][let]<k){
k-=dp[n][let];
let++;
}
int pos=n;
while(1){
ans.push_back(let+'a'); --k;
if(!k) break;
if(!let){++let;--pos;continue;}
if(let==25){--let;--pos;continue;}
if(k<=dp[pos-1][let-1]){
--let;
}
else{
k-=dp[pos-1][let-1];
++let;
}
--pos;
}
cout << ans << endl;
}
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 100/100 | ||||||
1 | Elfogadva | 0/0 | 3ms | 2408 KiB | |||
2 | Elfogadva | 0/0 | 2ms | 2440 KiB | |||
3 | Elfogadva | 5/5 | 2ms | 2340 KiB | |||
4 | Elfogadva | 5/5 | 3ms | 2348 KiB | |||
5 | Elfogadva | 5/5 | 2ms | 2352 KiB | |||
6 | Elfogadva | 5/5 | 3ms | 2356 KiB | |||
7 | Elfogadva | 5/5 | 2ms | 2360 KiB | |||
8 | Elfogadva | 5/5 | 3ms | 2504 KiB | |||
9 | Elfogadva | 5/5 | 4ms | 2532 KiB | |||
10 | Elfogadva | 5/5 | 4ms | 2544 KiB | |||
11 | Elfogadva | 5/5 | 4ms | 2564 KiB | |||
12 | Elfogadva | 5/5 | 6ms | 2556 KiB | |||
13 | Elfogadva | 5/5 | 8ms | 2588 KiB | |||
14 | Elfogadva | 6/6 | 3ms | 2572 KiB | |||
15 | Elfogadva | 6/6 | 8ms | 2600 KiB | |||
16 | Elfogadva | 6/6 | 6ms | 2604 KiB | |||
17 | Elfogadva | 6/6 | 4ms | 2624 KiB | |||
18 | Elfogadva | 7/7 | 4ms | 2632 KiB | |||
19 | Elfogadva | 7/7 | 8ms | 2660 KiB | |||
20 | Elfogadva | 7/7 | 4ms | 2652 KiB |