Problem p02936 (python)

Fixed submission:
import sys
input = sys.stdin.readline
sys.setrecursionlimit(10 ** 7)

# 遅延評価で加えてあげるだけ

N,Q = map(int,input().split())
AB = [[int(x) for x in input().split()] for _ in range(N-1)]
PX = [[int(x) for x in input().split()] for _ in range(Q)]

graph = [[] for _ in range(N+1)]
for a,b in AB:
    graph[a].append(b)
    graph[b].append(a)

value = [0] * (N+1)
for p,x in PX:
    value[p] += x
    
q = [(1,0)]
while q:
    x,parent = q.pop()
    value[x] += value[parent]
    for y in graph[x]:
        if y == parent:
            continue
        q.append((y,x))

answer = ' '.join(map(str,value[1:]))
print(answer)

Buggy submission (verdict: Runtime Error):
import sys
input = sys.stdin.readline

N, Q = map(int, input().split())


def add_count(G, C, v):
    for child in G[v]:
        C[child] += C[v]
        add_count(G, C, child)


def main():
    G = [[] for _ in range(N)]
    C = [0 for _ in range(N)]
    for _ in range(N-1):
        p, c = map(int, input().split())
        G[p-1].append(c-1)

    for _ in range(Q):
        p, x = map(int, input().split())
        C[p-1] += x

    add_count(G,C, 0)

    print(*C)

main()

Buggy submission (verdict: Runtime Error):
import sys
input = sys.stdin.readline
N, Q = map(int, input().split())

class Node():
    def __init__(self):
        self.children = []
        self.count = 0



def add_count(G, v):
    for child in G[v].children:
        G[child].count += G[v].count
        add_count(G, child)


def main():
    G = [Node() for _ in range(N)]
    for _ in range(N-1):
        p, c = map(int, input().split())
        G[p-1].children.append(c-1)

    for _ in range(Q):
        p, x = map(int, input().split())
        G[p-1].count += x

    add_count(G, 0)

    counts = [node.count for node in G]
    print(*counts)

main()

Buggy submission (verdict: Runtime Error):

N, Q = map(int, input().split())

class Node():
    def __init__(self):
        self.children = []
        self.count = 0



def add_count(G, v):
    for child in G[v].children:
        G[child].count += G[v].count
        add_count(G, child)


def main():
    G = [Node() for _ in range(N)]
    for _ in range(N-1):
        p, c = map(int, input().split())
        G[p-1].children.append(c-1)

    for _ in range(Q):
        p, x = map(int, input().split())
        G[p-1].count += x

    add_count(G, 0)

    counts = [node.count for node in G]
    print(*counts)

main()

Buggy submission (verdict: Runtime Error):
import sys
input = sys.stdin.readline

N, Q = map(int, input().split())

class Node():
    def __init__(self):
        self.children = []
        self.count = 0



def add_count(G, v):
    for child in G[v].children:
        G[child].count += G[v].count
        add_count(G, child)


def main():
    G = [Node() for _ in range(N)]
    for _ in range(N-1):
        p, c = map(int, input().split())
        G[p-1].children.append(c-1)

    for _ in range(Q):
        p, x = map(int, input().split())
        G[p-1].count += x

    add_count(G, 0)

    counts = [node.count for node in G]
    print(*counts)

main()

Buggy submission (verdict: Runtime Error):
import sys
input = sys.stdin.readline

N, Q = map(int, input().split())

class Node():
    def __init__(self):
        self.children = []
        self.count = 0

G = [Node() for _ in range(N)]
for _ in range(N-1):
    p, c = map(int, input().split())
    G[p-1].children.append(c-1)

for _ in range(Q):
    p, x = map(int, input().split())
    G[p-1].count += x

def add_count(v):
    for child in G[v].children:
        G[child].count += G[v].count
        add_count(child)

add_count(0)

counts = [node.count for node in G]
print(*counts)

Buggy submission (verdict: Runtime Error):
import sys
input = sys.stdin.readline

N, Q = map(int, input().split())

class Node():
    def __init__(self):
        self.children = []
        self.count = 0

def add_count(G, v=0):
    for child in G[v].children:
        G[child].count += G[v].count
        add_count(G, child)

G = [Node() for _ in range(N)]
for _ in range(N-1):
    p, c = map(int, input().split())
    p -= 1
    c -= 1
    G[p].children.append(c)

for _ in range(Q):
    p, x = map(int, input().split())
    p -= 1
    G[p].count += x

add_count(G)



counts = [node.count for node in G]
print(*counts)

Buggy submission (verdict: Runtime Error):
import sys
input = sys.stdin.readline

N, Q = map(int, input().split())

class Node():
    def __init__(self):
        self.parent = -1
        self.children = []
        self.count = 0

# def add_count(G, v, x):
#     G[v].count += x
#     for child in G[v].children:
#         add_count(G, child, x)

def add_count(G, v=0):
    for child in G[v].children:
        G[child].count += G[v].count
        add_count(G, child)

G = [Node() for _ in range(N)]
for _ in range(N-1):
    p, c = map(int, input().split())
    p -= 1
    c -= 1
    G[p].children.append(c)
    G[c].parent = p


for _ in range(Q):
    p, x = map(int, input().split())
    p -= 1
    G[p].count += x

add_count(G)



counts = [node.count for node in G]
print(*counts)

Buggy submission (verdict: Runtime Error):
import sys
input = sys.stdin.readline

N, Q = map(int, input().split())

class Node():
    def __init__(self):
        self.parent = -1
        self.children = []
        self.count = 0

# def dfs(G, v=0, d=0):
#     G[v].depth = d
#     for child in G[v].children:
#         dfs(G, child, d+1)

def add_count(G, v, x):
    G[v].count += x
    for child in G[v].children:
        add_count(G, child, x)

G = [Node() for _ in range(N)]
for _ in range(N-1):
    p, c = map(int, input().split())
    p -= 1
    c -= 1
    G[p].children.append(c)
    G[c].parent = p


for _ in range(Q):
    p, x = map(int, input().split())
    p -= 1
    add_count(G, p, x)

counts = [node.count for node in G]
print(*counts)

Buggy submission (verdict: Runtime Error):
import sys
input = sys.stdin.readline

N, Q = map(int, input().split())

class Node():
    def __init__(self):
        self.parent = -1
        self.children = []
        self.depth = -1
        self.count = 0

def dfs(G, v=0, d=0):
    G[v].depth = d
    for child in G[v].children:
        dfs(G, child, d+1)

def add_count(G, v, x):
    G[v].count += x
    for child in G[v].children:
        add_count(G, child, x)

G = [Node() for _ in range(N)]
for _ in range(N-1):
    p, c = map(int, input().split())
    p -= 1
    c -= 1
    G[p].children.append(c)
    G[c].parent = p

dfs(G)

for _ in range(Q):
    p, x = map(int, input().split())
    p -= 1
    add_count(G, p, x)

counts = [node.count for node in G]
print(*counts)