파티 농담 집합

페타르를 포함해 연결된 초대 집합 중 농담 유형이 서로 다르고 각 참석자 아래 모인 유형이 연속된 수가 되는 경우의 서로 다른 집합 개수를 구합니다.

어려움8동적 계획법트리구간아직 제출이 없습니다시간 제한1초메모리 제한32 MB

문제

페타르는 생일 파티를 열면서 자기 회사 직원 가운데 몇 명을 초대하려고 한다. 페타르는 이 회사의 대표이고, 자기 파티이므로 항상 참석한다.

페타르를 포함한 직원 NN명에게는 1부터 NN까지 서로 다른 번호가 붙어 있고, ii번 사람이 하는 농담의 종류는 ViV_i이다. 페타르를 뺀 모든 직원에게는 직속 상사가 정확히 한 명씩 있다.

페타르는 대표라서 번호가 1이며, 모든 직원의 직접 상사이거나 간접 상사이다.

파티에 온 사람은 페타르까지 포함해 다음 규칙을 모두 지켜야 한다.

  • 같은 종류의 농담을 하는 사람이 두 명 있으면 안 된다.
  • 직속 상사가 초대받지 않은 사람은 초대할 수 없다.
  • XX가 직접 또는 간접으로 상사인 초대받은 사람들과 XX 자신이 하는 농담의 종류를 모두 모았을 때 그 집합이 연속한 수의 집합이 아니면, XX를 초대할 수 없다.

집합을 오름차순으로 정렬했을 때 이웃한 두 원소의 차이가 항상 1이면 연속한 수의 집합이다. 예를 들어 {3,1,2}\{3, 1, 2\}{5,1,2,4,3}\{5, 1, 2, 4, 3\}이 연속한 수의 집합이다.

페타르는 이 규칙을 지키면서 자기 파티에서 볼 수 있는 농담 종류의 집합이 몇 가지인지 알고 싶다.

입력

첫째 줄에 정수 NN이 주어진다. (1N100001 \le N \le 10000)

둘째 줄에 NN개의 정수 V1,V2,,VNV_1, V_2, \dots, V_N이 주어진다. ViV_iii번 사람이 하는 농담의 종류이다. (1Vi1001 \le V_i \le 100)

다음 N1N-1개 줄에는 각각 두 정수 AABB가 주어진다. AABB의 직속 상사라는 뜻이다. (1A,BN1 \le A, B \le N)

출력

규칙을 모두 지키면서 파티에서 볼 수 있는 농담 종류의 집합이 몇 가지인지 첫째 줄에 출력한다.

힌트

첫 번째 예제에서 파티에 나올 수 있는 농담의 집합은 {2}\{2\}, {2,3}\{2, 3\}, {2,3,4}\{2, 3, 4\}, {1,2,3,4}\{1, 2, 3, 4\}, {1,2}\{1, 2\}, {1,2,3}\{1, 2, 3\}이다.

두 번째 예제에서 가능한 집합은 {3}\{3\}, {3,4}\{3, 4\}, {3,4,5}\{3, 4, 5\}뿐이다. 농담 6을 하는 사람은 파티에 올 수 없다. 그 사람이 오면 농담 집합 {4,6}\{4, 6\}이 연속한 수의 집합이 아니기 때문이다.