페타르를 포함해 연결된 초대 집합 중 농담 유형이 서로 다르고 각 참석자 아래 모인 유형이 연속된 수가 되는 경우의 서로 다른 집합 개수를 구합니다.
어려움8동적 계획법트리구간아직 제출이 없습니다시간 제한1초메모리 제한32 MB페타르는 생일 파티를 열면서 자기 회사 직원 가운데 몇 명을 초대하려고 한다. 페타르는 이 회사의 대표이고, 자기 파티이므로 항상 참석한다.
페타르를 포함한 직원 N명에게는 1부터 N까지 서로 다른 번호가 붙어 있고, i번 사람이 하는 농담의 종류는 Vi이다. 페타르를 뺀 모든 직원에게는 직속 상사가 정확히 한 명씩 있다.
페타르는 대표라서 번호가 1이며, 모든 직원의 직접 상사이거나 간접 상사이다.
파티에 온 사람은 페타르까지 포함해 다음 규칙을 모두 지켜야 한다.
집합을 오름차순으로 정렬했을 때 이웃한 두 원소의 차이가 항상 1이면 연속한 수의 집합이다. 예를 들어 {3,1,2}와 {5,1,2,4,3}이 연속한 수의 집합이다.
페타르는 이 규칙을 지키면서 자기 파티에서 볼 수 있는 농담 종류의 집합이 몇 가지인지 알고 싶다.
첫째 줄에 정수 N이 주어진다. (1≤N≤10000)
둘째 줄에 N개의 정수 V1,V2,…,VN이 주어진다. Vi는 i번 사람이 하는 농담의 종류이다. (1≤Vi≤100)
다음 N−1개 줄에는 각각 두 정수 A와 B가 주어진다. A가 B의 직속 상사라는 뜻이다. (1≤A,B≤N)
규칙을 모두 지키면서 파티에서 볼 수 있는 농담 종류의 집합이 몇 가지인지 첫째 줄에 출력한다.
첫 번째 예제에서 파티에 나올 수 있는 농담의 집합은 {2}, {2,3}, {2,3,4}, {1,2,3,4}, {1,2}, {1,2,3}이다.
두 번째 예제에서 가능한 집합은 {3}, {3,4}, {3,4,5}뿐이다. 농담 6을 하는 사람은 파티에 올 수 없다. 그 사람이 오면 농담 집합 {4,6}이 연속한 수의 집합이 아니기 때문이다.