Problem p02936 (python)

Fixed submission:
N,Q=map(int,input().split())
tree={}
for i in range(N-1):
  a,b=map(int,input().split())
  if (a-1) in tree:
    tree[a-1].append(b-1)
  else:
    tree[a-1]=[b-1]
  if (b-1) in tree:
    tree[b-1].append(a-1)
  else:
    tree[b-1]=[a-1]

point=[0]*N

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

ans=[0]*N
stack=[]
stack.append([0,0,-1])
while len(stack)>0:
  nodes=stack.pop()
  node=nodes[0]
  sump=nodes[1]
  parent=nodes[2]
  sump=sump+point[node]
  ans[node]=sump
  if node in tree:
      childs=tree[node]
      for child in childs:
        if child!=parent:
          stack.append([child,sump,node])

print(*ans)

Buggy submission (verdict: Runtime Error):
import sys
sys.setrecursionlimit(10**5)

N,Q=map(int,input().split())
tree=[[] for i in range(N)]

for i in range(N-1):
  a,b=map(int,input().split())
  if tree[a-1]==None:
    tree[a-1]=[b-1]
  else:
    tree[a-1].append(b-1)

point=[0]*N

beginpoint=[0]*N

def search(v,sum,parent):
  if v>=N:
    return
  else:
    herepoint=beginpoint[v]
    point[v]=sum+herepoint
    for j in range(len(tree[v])):
      if tree[v][j]==parent:
        return
      search(tree[v][j],point[v],v)

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

search(0,0,-1)
  
print(*point)

Buggy submission (verdict: Runtime Error):
import sys
sys.setrecursionlimit(10**5)

N,Q=map(int,input().split())
tree=[[] for i in range(N)]

for i in range(N-1):
  a,b=map(int,input().split())
  if tree[a-1]==None:
    tree[a-1]=[b-1]
  else:
    tree[a-1].append(b-1)

point=[0]*N

beginpoint=[0]*N

def search(v,sum):
  if v>=N:
    return
  else:
    herepoint=beginpoint[v]
    point[v]=sum+herepoint
    for j in range(len(tree[v])):
      search(tree[v][j],point[v])

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

search(0,0)
  
print(*point)

Buggy submission (verdict: Runtime Error):
6 2
1 2
1 3
2 4
3 6
2 5
1 10
1 10

Buggy submission (verdict: Runtime Error):
import sys
sys.setrecursionlimit(10**5)

N,Q=map(int,input().split())
tree=[[] for i in range(N)]

for i in range(N-1):
  a,b=map(int,input().split())
  if tree[a-1]==None:
    tree[a-1]=[b-1]
  else:
    tree[a-1].append(b-1)

point=[0]*N

def search(p,add):
  if p>=N:
    return
  else:
    point[p]=point[p]+add
    for j in range(len(tree[p])):
      search(tree[p][j],add)

for i in range(Q):
  p,x=map(int,input().split())
  p=p-1
  search(p,x)
  
print(*point)

Buggy submission (verdict: Runtime Error):
N,Q=map(int,input().split())
tree=[[] for i in range(N)]

for i in range(N-1):
  a,b=map(int,input().split())
  if tree[a-1]==None:
    tree[a-1]=[b-1]
  else:
    tree[a-1].append(b-1)

point=[0]*N

def search(p,add):
  if p>=N:
    return
  else:
    point[p]=point[p]+add
    for j in range(len(tree[p])):
      search(tree[p][j],add)

for i in range(Q):
  p,x=map(int,input().split())
  p=p-1
  search(p,x)
  
print(*point)

Buggy submission (verdict: Runtime Error):
N,Q=map(int,input().split())
tree=[None]*N
for i in range(N-1):
  a,b=map(int,input().split())
  if tree[a-1]==None:
    tree[a-1]=[b-1]
  else:
    tree[a-1].append(b-1)
point=[0]*N

def search(p,add):
  if p>=N:
    return
  else:
    point[p]=point[p]+add
    if tree[p]!=None:
      for j in range(len(tree[p])):
        search(tree[p][j],add)

for i in range(Q):
  p,x=map(int,input().split())
  p=p-1
  search(p,x)
  
print(*point)