Neterukun's Library

This documentation is automatically generated by online-judge-tools/verification-helper

View the Project on GitHub Neterukun1993/Library

:heavy_check_mark: TestCase/LibraryChecker/vertex_add_subtree_sum.dsu_on_tree.test.py

Depends on

Code

# verification-helper: PROBLEM https://judge.yosupo.jp/problem/vertex_add_subtree_sum
import sys
input = sys.stdin.buffer.readline

from DataStructure.BinaryIndexedTree.PointAddRangeSum import BinaryIndexedTree
from Graph.Tree.dsu_on_tree import dsu_on_tree


def main():
    n, q = map(int, input().split())
    a = list(map(int, input().split()))
    p = list(map(int, input().split()))
    queries = [list(map(int, input().split())) for i in range(q)]

    tree = [[] for i in range(n)]
    for u, v in enumerate(p):
        u += 1
        tree[u].append(v)
        tree[v].append(u)

    ans = [-1] * (q + 1)
    update = [[] for i in range(n)]
    answer = [[] for i in range(n)]
    for i in range(n):
        update[i].append((0, a[i]))
    for t, (flag, *qu) in enumerate(queries, 1):
        if flag == 0:
            u, x = qu
            update[u].append((t, x))
        else:
            u = qu[0]
            answer[u].append(t)

    bit = BinaryIndexedTree(q + 1)

    def add(v):
        for t, val in update[v]:
            bit.add(t, val)

    def sub(v):
        for t, val in update[v]:
            bit.add(t, -val)

    def query(v):
        for t in answer[v]:
            ans[t] = bit.sum(0, t)

    dsu_on_tree(tree, 0, add, sub, query)
    print("\n".join(map(str, [val for val in ans if val != -1])))


if __name__ == '__main__':
    main()
Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.12.4/x64/lib/python3.12/site-packages/onlinejudge_verify/documentation/build.py", line 71, in _render_source_code_stat
    bundled_code = language.bundle(stat.path, basedir=basedir, options={'include_paths': [basedir]}).decode()
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.12.4/x64/lib/python3.12/site-packages/onlinejudge_verify/languages/python.py", line 96, in bundle
    raise NotImplementedError
NotImplementedError
Back to top page