水平)1068ツリー
4630 ワード
コード#コード# n = int(input())
li = list(map(int, input().split()))
r = int(input())
tree = [[]for _ in range(n)]
root = 0
ans = 0
for idx, i in enumerate(li):
if i == -1:
root = idx
continue
if idx == r:
continue
tree[i].append(idx)
def dfs(v):
global ans
if len(tree[v]) ==0:
ans += 1
return
for i in tree[v]:
dfs(i)
if root != r:
dfs(root)
print(ans)
方法
n = int(input())
li = list(map(int, input().split()))
r = int(input())
tree = [[]for _ in range(n)]
root = 0
ans = 0
for idx, i in enumerate(li):
if i == -1:
root = idx
continue
if idx == r:
continue
tree[i].append(idx)
def dfs(v):
global ans
if len(tree[v]) ==0:
ans += 1
return
for i in tree[v]:
dfs(i)
if root != r:
dfs(root)
print(ans)
持ち物
Reference
この問題について(水平)1068ツリー), 我々は、より多くの情報をここで見つけました https://velog.io/@bokman/백준-1068-트리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol