結果
| 問題 |
No.778 クリスマスツリー
|
| コンテスト | |
| ユーザー |
silversmith
|
| 提出日時 | 2019-05-03 02:14:56 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,626 bytes |
| コンパイル時間 | 257 ms |
| コンパイル使用メモリ | 12,800 KB |
| 実行使用メモリ | 64,148 KB |
| 最終ジャッジ日時 | 2024-12-31 14:04:33 |
| 合計ジャッジ時間 | 9,352 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 9 RE * 3 |
ソースコード
class sorted_list:
def __init__(self):
self.list = []
def _idx(self,val):
if len(self.list) == 0:
return 0
else:
left = 0
right = len(self.list) -1
mid = int((left + right)/2)
if val < self.list[left]:
return 0
elif val > self.list[right]:
return len(self.list)
else:
while right -left > 1:
mid = int((left + right)/2)
if val < self.list[mid]:
right = mid
else:
left = mid
return mid if val < self.list[mid] else mid +1
def insert(self,val):
self.list.insert(self._idx(val), val)
def remove(self, val):
self.list.remove(val)
def order_of_key(self, val):
return self._idx(val)
class Node:
def __init__(self):
#self.parent_Node = None
self.child_Node = []
class tree:
def __init__(self, Nodes):
self.Nodes = Nodes
self.sorted_list=sorted_list()
def push_edge(self,low, upper):
self.Nodes[upper].child_Node.append(low)
def dns(self, val):
r = self.sorted_list.order_of_key(val)
self.sorted_list.insert(val)
r += sum([self.dns(node) for node in self.Nodes[val].child_Node])
self.sorted_list.remove(val)
return r
N = int(input())
A = map(int, input().split())
t = tree([Node() for i in range(N)])
for idx, a in enumerate(A):
t.push_edge(idx + 1, a)
print(t.dns(0))
silversmith