아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

파티 농담 집합

시간 제한1초메모리 제한32 MB

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

어려움10점 중 8점

유형
동적 계획법, 트리, 구간
정답자
아직 제출이 없습니다

문제

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

페타르를 포함한 직원 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이 주어진다. (1≤N≤100001 \le N \le 10000)

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

다음 N−1N-1개 줄에는 각각 두 정수 AA와 BB가 주어진다. AA가 BB의 직속 상사라는 뜻이다. (1≤A,B≤N1 \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\}이 연속한 수의 집합이 아니기 때문이다.

예제3

  1. 예제 1

    입력
    4
    2 1 3 4
    1 2
    1 3
    3 4
    
    예상 출력
    6
    
  2. 예제 2

    입력
    4
    3 4 5 6
    1 2
    1 3
    2 4
    
    예상 출력
    3
    
  3. 예제 3

    입력
    6
    5 3 6 4 2 1
    1 2
    1 3
    1 4
    2 5
    5 6
    
    예상 출력
    10