만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

나무 물 주기

시간 제한2초메모리 제한1024 MB

요약
뿌리가 1번인 트리에서 정점에 물을 주면 물이 자식 정점으로 내려가며 열매를 키웁니다. 열매의 현재 크기를 묻는 질의에 답합니다.
난이도

어려움10점 중 8점

유형
트리, DFS, 세그먼트 트리
정답자
아직 제출이 없습니다

문제

목이 마른 나무에게 물을 주자.

나무는 NN개의 정점과 (N−1)(N-1)개의 간선으로 이루어져 있으며, 어느 두 정점 사이에도 단순 경로가 유일하게 존재하는 그래프이다. 11번 정점을 나무의 뿌리라고 한다. ii번 정점과 간선으로 직접 연결되어 있으면서 뿌리와의 단순 경로 길이가 ii번 정점보다 더 큰 정점을 ii번 정점의 자식 정점이라고 한다.

각 정점에는 열매가 하나씩 달려 있다. 열매는 자신의 크기만큼 물을 흡수할 수 있으며, 물을 주면 가능한 최대로 흡수한다. 열매는 흡수한 물의 양만큼 커진다.

자식 정점이 하나 이상 있다면, 열매가 흡수하고 남은 물은 간선으로 이어진 자식 정점들에게 나뉘어 흘러간다. 각 자식 정점에게 흘러가는 물의 양은 ⌊남은 물의 양자식 정점의 수⌋\left\lfloor {\frac{\text{남은 물의 양}}{\text{자식 정점의 수}}} \right\rfloor이다.

나무에 물을 주기 위해 QQ개의 쿼리를 수행하라.

  • 1 u x: 정점 uu에 xx만큼의 물을 준다. (1≤u≤N1\le u\le N; 1≤x≤1091\le x\le 10^9)
  • 2 u: 정점 uu의 열매의 크기를 출력한다. (1≤u≤N1\le u\le N)

입력

첫째 줄에 정점의 개수 NN과 쿼리의 개수 QQ가 공백으로 구분되어 주어진다. (1≤N≤100 0001\le N\le 100\,000; 1≤Q≤100 0001\le Q\le 100\,000)

둘째 줄부터 N−1N-1개의 줄에 걸쳐 간선을 이루는 두 정점 uu와 vv가 공백으로 구분되어 주어진다. (1≤u,v≤N1\le u,v\le N; u≠vu\neq v)

(N+1)(N+1)번째 줄에는 각 정점의 열매 크기를 뜻하는 양의 정수 x1x_1, x2x_2, ⋯\cdots, xNx_N이 공백으로 구분되어 주어진다. (1≤xi≤1091\le x_i\le 10^9)

(N+2)(N+2)번째 줄부터 QQ개의 줄에 걸쳐 쿼리가 주어진다. 각 쿼리는 1 u x 또는 2 u이다. (1≤u≤N1\le u\le N; 1≤x≤1091\le x\le 10^9)

모든 입력은 정수이며, 2번 쿼리는 한 번 이상 주어진다.

출력

2번 쿼리마다 해당 쿼리의 정답을 한 줄에 하나씩 출력한다.

힌트

⌊x⌋\lfloor{x}\rfloor는 xx보다 작거나 같은 가장 큰 정수를 의미한다.

예제2

  1. 예제 1

    입력
    1 1
    1
    2 1
    
    예상 출력
    1
    
  2. 예제 2

    입력
    2 2
    1 2
    1 1
    1 1 1
    2 1
    
    예상 출력
    2