結果
問題 |
No.3299 K-th MMA String
|
ユーザー |
|
提出日時 | 2025-10-05 15:28:10 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
MLE
|
実行時間 | - |
コード長 | 627 bytes |
コンパイル時間 | 187 ms |
コンパイル使用メモリ | 12,416 KB |
実行使用メモリ | 817,408 KB |
最終ジャッジ日時 | 2025-10-05 15:28:22 |
合計ジャッジ時間 | 5,129 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | -- * 3 |
other | AC * 14 MLE * 2 -- * 4 |
ソースコード
N,K = map(int,input().split()) dp = [[0]*4 for _ in range(N+1)] dp[0][0] = 1 for i in range(N): dp[i+1][0] = dp[i][0] dp[i+1][1] = dp[i][0] + dp[i][1] + dp[i][2] dp[i+1][2] = dp[i][1] dp[i+1][3] = dp[i][2] + 2*dp[i][3] S = "" count_MMA = 0 # S 以下で"MMA"を含まないやつ flag = False for i in range(N): count_MMA_diff = 2**(N-i-1) if flag or (len(S) >= 2 and S[-2:] == "MM") else dp[N-i-1][3] count = count_MMA + count_MMA_diff #print(S + "A" +"M"*(N-i-1),count) if count >= K: flag |= len(S) >= 2 and S[-2:] == "MM" S += "A" else: count_MMA += count_MMA_diff S += "M" print(S)