행복한 나무
시간 제한2초메모리 제한512 MB
남은 정점 중 경로 거리가 그 정점의 값보다 큰 자손이 없도록, 잘라야 하는 리프의 최소 개수를 구한다.
문제
정점이 개인 트리가 있다. 정점 번호는 1번부터 번까지이고, 1번 정점이 루트다. 각 정점과 각 간선에는 숫자가 하나씩 쓰여 있다. 정점 에 쓰인 숫자를 라 하고, 정점 에서 정점 로 가는 경로 위 간선에 쓰인 숫자의 합을 라 하자.
정점 가 슬프다는 것은 를 루트로 하는 부분 트리 안에 인 정점 가 하나 이상 있다는 뜻이다. 슬픈 정점이 하나도 없는 트리를 행복한 트리라고 한다.
민주는 키보드보다 무거운 물건을 들 수 없어서 말단 정점만 자를 수 있다. 말단 정점은 자식이 없는 정점, 즉 이어진 정점이 부모 하나뿐인 정점이다. 루트는 트리에 정점이 1개만 남았을 때만 말단 정점이 된다. 정점을 자르면 그 정점은 트리에서 사라지고, 그 결과 새로 말단이 된 정점을 이어서 자를 수 있다.
트리가 행복해질 때까지 잘라야 하는 정점의 최소 개수를 구하라.
아래 그림 1)의 트리에서는 2)부터 6)까지 표시한 정점 5개를 잘라야 한다.

입력
첫 줄에 정점의 개수 ()이 주어진다.
둘째 줄에 1번 정점부터 번 정점까지 쓰인 숫자 ()이 공백으로 구분되어 주어진다.
이어지는 개의 줄 중 번째 줄에는 두 정수 ()와 ()가 주어진다. 번 정점과 번 정점이 간선으로 이어져 있고, 그 간선에 쓰인 숫자가 라는 뜻이다. 주어지는 간선은 항상 트리를 이룬다.
가 보다 큰 경우도 있으므로, 부모와 자식 관계는 1번 정점을 루트로 두고 직접 정해야 한다.
출력
트리가 행복해지기 위해 잘라야 하는 말단 정점의 최소 개수를 한 줄에 출력한다.