結果
| 問題 | No.900 aδδitivee |
| コンテスト | |
| ユーザー |
sasa8uyauya
|
| 提出日時 | 2026-03-11 22:34:52 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,031 bytes |
| 記録 | |
| コンパイル時間 | 484 ms |
| コンパイル使用メモリ | 85,484 KB |
| 実行使用メモリ | 101,292 KB |
| 最終ジャッジ日時 | 2026-03-11 22:35:17 |
| 合計ジャッジ時間 | 18,210 ms |
|
ジャッジサーバーID (参考情報) |
judge3_1 / judge1_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | WA * 2 |
| other | WA * 27 |
ソースコード
n=int(input())
e=[[] for i in range(n)]
a=[0]*n
for i in range(n-1):
u,v,w=map(int,input().split())
e[u]+=[v]
a[v]=w
o=[]
y=[0]*n
g=[0]*n
d=[0]*n
v=[0]*n
q=[0]
while len(q)>0:
s=q[-1]
if v[s]==0:
v[s]=1
o+=[s]
y[s]=len(o)-1
for t in e[s]:
q+=[t]
d[t]=d[s]+1
else:
g[s]=1+sum(g[t] for t in e[s])
q.pop()
B=317
st1=[0]*B*B
st2=[0]*B
def ADD(l,r,v):
yl=l//B
yr=r//B
for y in [yl,yr]:
for i in range(y*B,y*B+B):
st1[i]+=st2[y]
st2[y]=0
if yl==yr:
for i in range(l,r+1):
st1[i]+=v
else:
for i in range(l,yl*B+B):
st1[i]+=v
for i in range(yr*B,r+1):
st1[i]+=v
for i in range(yl+1,yr):
st2[i]+=v
return
def GET(x):
y=x//B
for i in range(y*B,y*B+B):
st1[i]+=st2[y]
st2[y]=0
return st1[x]
for i in range(n):
j=o[i]
ADD(i,i+g[j]-1,a[j])
Q=int(input())
for _ in range(Q):
q=list(map(int,input().split()))
t=q[0]
if t==1:
t,a,x=q
ADD(y[a],y[a]+g[a]-1,x)
else:
t,b=q
print(GET(y[b]))
sasa8uyauya