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

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

경로

시간 제한3초메모리 제한1024 MB

요약
각 정점에 색이 칠해진 그래프에서 경로 위 정점들의 색이 모두 다른 단순 경로의 개수를 양방향을 각각 세어 구한다.
난이도

어려움10점 중 8점

유형
그래프, DFS, 백트래킹, 동적 계획법
정답자
아직 제출이 없습니다

문제

정점들의 집합과, 두 정점을 잇는 간선들의 집합으로 이루어진 구조를 그래프라고 한다.

그래프의 경로는 정점들의 순서열 v1,v2,…,vtv_1, v_2, \dots, v_t (t≥2t \ge 2) 로, 연속한 두 정점 사이에는 항상 간선이 있어야 한다. 이 문제에서는 어떤 정점도 두 번 이상 등장하지 않는 단순 경로만 생각한다. 순서열은 순서를 구분하므로, 같은 정점들로 이루어져 있어도 순서가 다르면 서로 다른 경로로 센다.

각 정점에는 11부터 KK까지의 색 중 하나가 칠해져 있다. 하나의 경로 안에 같은 색의 정점이 두 번 나타나지 않는 단순 경로가 몇 개인지 구하라.

입력

첫째 줄에 세 정수 NN (정점의 수), MM (간선의 수), KK (색의 수)가 공백으로 구분되어 주어진다.

둘째 줄에 NN개의 정수 c1,c2,…,cNc_1, c_2, \dots, c_N (1≤ci≤K1 \le c_i \le K)이 주어진다. cic_i는 정점 ii의 색이다.

이어지는 MM개의 줄에는 각 간선의 양 끝점 a,ba, b (1≤a,b≤N1 \le a, b \le N, a≠ba \ne b)가 주어진다. 어떤 두 정점 사이에도 간선은 최대 하나이다. 그래프는 연결 그래프가 아닐 수 있다.

출력

색이 서로 모두 다른 단순 경로의 개수를 한 줄에 출력하라. 세는 경로는 정점을 2개 이상 포함해야 하며, 같은 정점들을 반대 방향으로 지나는 경로는 서로 다르게 센다. 답은 항상 101810^{18}보다 작다.

힌트

모든 색이 달라야 하므로 하나의 경로가 포함할 수 있는 정점은 최대 KK개이다. 정점이 하나뿐인 목록은 경로가 아니며, 같은 색이 두 번 등장하는 순서열도 세지 않는다. 답은 64비트 정수 범위에 들어가므로 나머지 연산 없이 그대로 출력하면 된다.

예제2

  1. 예제 1

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

    입력
    9 11 4
    1 2 3 4 1 2 1 2 2
    1 2
    1 3
    2 3
    2 4
    3 6
    6 2
    6 5
    4 3
    4 5
    7 8
    9 8
    
    예상 출력
    70