結果
| 問題 |
No.2868 Another String of yuusaan
|
| コンテスト | |
| ユーザー |
沙耶花
|
| 提出日時 | 2024-08-30 22:31:55 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,060 bytes |
| コンパイル時間 | 4,061 ms |
| コンパイル使用メモリ | 252,424 KB |
| 最終ジャッジ日時 | 2025-02-24 03:12:41 |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 11 WA * 7 |
ソースコード
#include <stdio.h>
#include <bits/stdc++.h>
#include <atcoder/all>
using namespace atcoder;
using mint = modint998244353;
using namespace std;
#define rep(i,n) for (int i = 0; i < (n); ++i)
#define Inf32 1000000001
#define Inf64 1000000000000000001
string s = "yuusaan";
long long sz[100],cnt[100];
void solve(long long n,long long K){
if(n==0){
cout<<"y"<<endl;
exit(0);
}
if(K==0){
cout<<s[n]<<endl;
exit(0);
}
n--;
if(K>=100){
n -= K-99;
if(n<0){
cout<<"y"<<endl;
exit(0);
}
solve(n,99);
}
else{
for(int j=1;j<s.size();j++){
if(s[j]=='a'||s[j]=='u'){
long long t = sz[K];
if(n-t >= 0){
n -= t;
}
else{
solve(n,K-1);
}
}
else{
if(n==0){
cout<<s[j]<<endl;
exit(0);
}
else n--;
}
}
}
}
int main(){
long long N,K;
cin>>N>>K;
sz[1] = 7;
cnt[1] = 4;
for(int i=2;i<100;i++){
sz[i] = sz[i-1] + cnt[i-1] * 6;
cnt[i] = cnt[i-1] * 4;
sz[i] = min(sz[i], (long long)Inf64);
cnt[i] = min(cnt[i],(long long) Inf64);
}
K--;
N--;
solve(K,N);
return 0;
}
沙耶花