전력 공급망 분할

공급 또는 수요가 있는 정점과 용량이 있는 간선으로 이루어진 트리에서 간선을 일부 삭제해 각 부분트리가 정확히 하나의 공급을 포함하고 그 공급이 부분트리 수요 합 이상이 되도록 만들 수 있는지 판정한다.

보통7트리DFS그리디아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

정점이 NN개인 트리 TT가 전력 공급망이다. TT의 각 정점은 공급 정점이거나 수요 정점이다. 공급 정점에는 공급량, 수요 정점에는 수요량이라는 양의 정수가 하나씩 붙어 있다. 각 수요 정점은 공급 정점 하나에서만 TT의 간선을 따라 전력을 받고, 그 결과 간선마다 전력이 흐른다. 각 간선에는 용량이라는 양의 정수가 붙어 있다.

간선을 지워서 TT를 여러 부분 트리로 분할한다. 간선을 하나도 지우지 않아서 TT 자체가 분할 결과가 되어도 된다. 다만 다음 두 조건을 모두 만족해야 한다.

  1. 각 부분 트리는 공급 정점을 정확히 하나 포함하고, 그 공급량이 부분 트리에 있는 모든 수요량의 합보다 작지 않다.
  2. 각 간선에 흐르는 전력이 그 간선의 용량을 넘지 않는다.

TT에 이런 분할이 존재하는지 판정하라.

그림 1(a)는 트리 TT의 예다. 공급 정점은 직사각형, 수요 정점은 원으로 그렸고, 공급량과 수요량은 도형 안에 적었으며 용량은 간선마다 붙였다. 그림 1(b)는 조건을 만족하는 분할 하나를 보여준다. 지운 간선은 파선, 각 부분 트리의 경계는 점선으로 표시했고, 간선에 적은 수가 그 간선에 흐르는 전력이며 화살표가 흐름의 방향이다.

그림 1. 분할의 예.

입력

첫 줄에 트리 TT의 정점 개수 NN이 주어진다 (1N3000001 \le N \le 300000). 정점은 1,2,,N1, 2, \ldots, N으로 나타낸다.

이어지는 NN개 줄 중 ii번째 줄에는 두 정수 aabb가 주어진다 (aa는 0 또는 1, 1b1091 \le b \le 10^9). a=0a = 0이면 정점 ii는 공급량이 bb인 공급 정점이고, a=1a = 1이면 정점 ii는 수요량이 bb인 수요 정점이다.

그 다음 N1N - 1개 줄에는 각각 세 정수 xx, yy, zz가 주어진다 (1x,yN1 \le x, y \le N, 1z1091 \le z \le 10^9). 이는 정점 xx와 정점 yy를 잇고 용량이 zz인 간선을 뜻한다.

출력

조건을 만족하는 분할이 TT에 존재하면 1, 존재하지 않으면 0을 한 줄에 출력한다.