結果
問題 |
No.566 だいたい完全二分木
|
ユーザー |
![]() |
提出日時 | 2025-02-01 13:42:35 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 622 bytes |
コンパイル時間 | 1,427 ms |
コンパイル使用メモリ | 82,320 KB |
実行使用メモリ | 68,324 KB |
最終ジャッジ日時 | 2025-02-01 13:42:41 |
合計ジャッジ時間 | 2,746 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 10 RE * 1 |
ソースコード
def check(x): ret = 0 while not (x & 1): x >>= 1 ret += 1 return ret def f(x): ret = [] Q = [x] ret.append(x) while Q: x = Q.pop() x1 = x - (1 << (check(x)-1)) ret.append(x1) x2 = x + (1 << (check(x)-1)) ret.append(x2) if x2 & 1 == 0: Q.append(x2) if x1 & 1 == 0: Q.append(x1) return ret K = int(input()) # 頂点数 2^K - 1 # 中央 2^(K-1) x0 = 1 << (K - 1) x1 = x0 - (1 << (K - 2)) x2 = x0 + (1 << (K - 2)) X1 = [] X2 = [] X1 = f(x1) X2 = f(x2) ans = [x2] + [x0] + X1 + X2[1:] print(*ans)