結果
問題 | No.2868 Another String of yuusaan |
ユーザー | kotatsugame |
提出日時 | 2024-08-30 21:47:06 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 718 bytes |
コンパイル時間 | 752 ms |
コンパイル使用メモリ | 65,912 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-08-30 21:47:07 |
合計ジャッジ時間 | 1,781 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 18 |
ソースコード
#include<iostream> #include<cassert> using namespace std; long len[26]; void dfs(int n,long k) { assert(len[n]>k); if(n==1) { cout<<"yuusaan"[k]<<endl; return; } for(int i=0;i<7;i++) { char c="yuusaan"[i]; if(c=='u'||c=='a') { if(len[n-1]>k) { dfs(n-1,k); return; } k-=len[n-1]; } else { if(k==0) { cout<<c<<endl; return; } k--; } } assert(false); } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); long N,K; cin>>N>>K; len[1]=7; for(int i=2;i<26;i++) { len[i]=len[i-1]*4+3; } K--; if(N>25) { long t=min(N-25,K); N-=t; K-=t; } if(K==0) { cout<<"y"<<endl; return 0; } assert(N<26); assert(len[N]>K); dfs(N,K); }