結果
| 問題 | 
                            No.2766 Delicious Multiply Spice
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2024-07-12 15:05:06 | 
| 言語 | PyPy3  (7.3.15)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 64 ms / 2,000 ms | 
| コード長 | 900 bytes | 
| コンパイル時間 | 453 ms | 
| コンパイル使用メモリ | 82,464 KB | 
| 実行使用メモリ | 54,056 KB | 
| 最終ジャッジ日時 | 2024-07-12 15:05:11 | 
| 合計ジャッジ時間 | 4,302 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge2 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 8 | 
| other | AC * 31 | 
ソースコード
from collections import defaultdict
def main():
    N = int(input())
    transition = defaultdict(str)
    stack = [N]
    while stack:
        cur = stack.pop()
        if (cur - 1) % 2 == 0:
            if transition[(cur - 1) // 2] == "":
                transition[(cur - 1) // 2] = "A"
                stack.append((cur - 1) // 2)
                if (cur - 1) // 2 == 1:
                    break
        if (cur - 1) % 3 == 0:
            if transition[(cur - 1) // 3] == "":
                transition[(cur - 1) // 3] = "B"
                stack.append((cur - 1) // 3)
                if (cur - 1) // 3 == 1:
                    break
    cur_n = 1
    ans = ""
    while cur_n < N:
        ans += transition[cur_n]
        if transition[cur_n] == "A":
            cur_n = cur_n * 2 + 1
        else:
            cur_n = cur_n * 3 + 1
    print(ans)
if __name__ == "__main__":
    main()