// recursion limit error が怖い fun main() { val (n, q) = readLine()!!.split(" ").map { it.toInt() } val v = List(n) { mutableListOf() } repeat(n - 1) { val (a, b) = readLine()!!.split(" ").map { it.toInt() - 1 } v[a].add(b) v[b].add(a) } val subsiz = MutableList(n) { 0 } subsiz[0] = n fun dfs(now: Int) { subsiz[now] = 1 for (next in v[now]) { if (subsiz[next] == 0) { dfs(next) subsiz[now] += subsiz[next] } } } dfs(0) var ans = 0L repeat(q) { val (p, x) = readLine()!!.split(" ").map { it.toInt() } ans += subsiz[p-1].toLong() * x println(ans) } }