結果

問題 No.3134 二分探索木
ユーザー かえる☔
提出日時 2025-05-02 21:38:24
言語 PyPy3
(7.3.15)
結果
TLE  
実行時間 -
コード長 950 bytes
コンパイル時間 404 ms
コンパイル使用メモリ 82,292 KB
実行使用メモリ 273,536 KB
最終ジャッジ日時 2025-05-02 21:38:31
合計ジャッジ時間 6,084 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 5
other AC * 8 TLE * 1 -- * 6
権限があれば一括ダウンロードができます

ソースコード

diff #

class Node:
    def __init__(self, i, a):
        self.left = None
        self.right = None
        self.i = i
        self.a = a
    def insert(self, i, a):
        if a < self.a:
            if self.left is not None:
                self.left.insert(i, a)
            else:
                self.left = Node(i, a)
        else:
            if self.right is not None:
                self.right.insert(i, a)
            else:
                self.right = Node(i, a)
    def out(self, ans, d=0):
        i = self.i
        c = 0
        if self.left is not None:
            c += self.left.out(ans, d+1)
        if self.right is not None:
            c += self.right.out(ans, d+1)
        ans[i] = (d, c)
        return c + 1

N = int(input())
A = list(map(int, input().split()))


root = Node(0, A[0])
for i, a in enumerate(A):
    if not i:
        continue

    root.insert(i, a)

ans = [None]*N
root.out(ans)

b, c = zip(*ans)
print(*b)
print(*c)
0