結果
| 問題 |
No.2868 Another String of yuusaan
|
| コンテスト | |
| ユーザー |
寝癖
|
| 提出日時 | 2024-07-08 11:23:03 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 50 ms / 2,000 ms |
| コード長 | 812 bytes |
| コンパイル時間 | 1,302 ms |
| コンパイル使用メモリ | 82,304 KB |
| 実行使用メモリ | 55,936 KB |
| 最終ジャッジ日時 | 2024-07-08 23:14:18 |
| 合計ジャッジ時間 | 1,922 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 18 |
ソースコード
from functools import lru_cache
import pypyjit
pypyjit.set_param('max_unroll_recursion=-1')
N, K = map(int, input().split())
T = 'yuusaan'
@lru_cache(maxsize=None)
def find(n, k):
if n > 100:
if k <= n-100:
return 'y'
else:
return find(100, k-n+100)
if n == 1:
return T[k-1]
if k <= 1:
return 'y'
elif k <= 1 + l(n-1):
return find(n-1, k-1)
elif k <= 1 + 2*l(n-1):
return find(n-1, k-l(n-1)-1)
elif k <= 2 + 2*l(n-1):
return 's'
elif k <= 2 + 3*l(n-1):
return find(n-1, k-2*l(n-1)-2)
elif k <= 2 + 4*l(n-1):
return find(n-1, k-3*l(n-1)-2)
else:
return 'n'
@lru_cache(maxsize=None)
def l(n):
if n == 1:
return len(T)
return 4*l(n-1)+3
print(find(N, K))
寝癖