Codeforces Round 442 (Div. 2) |
---|
Закончено |
Данил решил заработать денег, поэтому нашел подработку. Собеседование прошло хорошо, и его взяли на очень ответственную должность переключателя света.
Данил будет работать в корневом дереве (связном неориентированном графе без циклов) из n вершин, корнем которого является вершина 1. В каждой вершине находится комната, в которой может гореть свет. В обязанности Данила входит переключение света во всех комнатах поддерева вершины. Это значит, что если в какой-то комнате поддерева горит свет, он должен выключить его, иначе он должен включить его.
К сожалению (или к счастью), Данил очень ленивый. Он знает, что его начальник не собирается лично проверять выполнение работы. Вместо этого он будет присылать Данилу задания через личные сообщения на Workforces.
Задания бывают двух типов:
Под поддеревом вершины v понимается все вершины, кратчайший путь от которых до корня дерева проходит через вершину v. В частности, сама вершина v лежит в поддереве вершины v.
Данил не собирается выполнять свою работу. Вместо этого он просит написать вас программу, которая будет отвечать начальнику за него.
В первой строке находится целое число n (1 ≤ n ≤ 200 000) — количество вершин в дереве.
Во второй строке находится n - 1 целых чисел p2, p3, ..., pn (1 ≤ pi < i), где число pi обозначает предка вершины i.
В третьей строке находится n целых чисел t1, t2, ..., tn (0 ≤ ti ≤ 1), где ti равно 1, если в i-й вершине изначально горит свет, и 0 в противном случае.
В четвертой строке находится целое число q (1 ≤ q ≤ 200 000) — число заданий.
Далее следует q строк вида get v или pow v (1 ≤ v ≤ n) — запросы согласно описанному выше формату.
На каждый запрос get v выведите одно целое число — количество комнат в поддереве v, в которых горит свет.
4
1 1 1
1 0 0 1
9
get 1
get 2
get 3
get 4
pow 1
get 1
get 2
get 3
get 4
2
0
0
1
2
1
1
0
Дерево после задания pow 1.
Название |
---|