[BalticOI 2018] 路径

题目描述

**题目译自 [BalticOI 2018](https://boi2018.progolymp.se/tasks/) Day2「[Paths](https://boi18-day2-open.kattis.com/problems/boi18.paths)」** 给定一张 $N$ 个点 $M$ 条边的无向图,每个点有一个颜色,所有点的颜色共有 $K$ 种,编号为 $1\ldots K$。求图上有多少条长度至少为 $2$ 的简单路径,满足路径上的每一个点的颜色互不相同。 路径上的点的连接顺序不同看作不同的两条路径。

输入输出格式

输入格式


第一行包含三个整数 $N$, $M$ 和 $K$。 第二行包含 $N$ 个在 $1$ 到 $K$ 之间的整数,表示每个点的颜色。 接下来的 $M$ 行每行两个整数 $a$ 和 $b$,表示图的一条边。 数据保证图无自环无重边。

输出格式


输出一个整数表示每一个点颜色都不同的路径条数。保证答案不会超过 $10^{18}$。

输入输出样例

输入样例 #1

4 3 3
1 2 1 3
1 2
2 3
4 2

输出样例 #1

10

输入样例 #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

输出样例 #2

70

说明

#### 样例 1 解释 ![](https://gitee.com/mingqihuang/pics/raw/master/pathsfig.pdf.svg) 样例 1 中表达的图如上图所示。每个点的底色分别为白色(颜色 $1$)、灰色(颜色 $2$)或黑色(颜色 $3$)。共有 $10$ 条路径满足路径上的所有点的颜色都不同。它们是:``1-2``, ``2-1``, ``2-3``, ``3-2``, ``2-4``, ``4-2``, ``1-2-4``, ``4-2-1``, ``3-2-4`` 和 ``4-2-3``。 注意 ``1`` 不能看作是一条路径,因为一条路径至少连接两个点。``1-2-3`` 也不满足条件,因为有两个点都是 $1$ 号颜色。 |子任务|分值|数据范围| |:--:|:--:|:--:| |$1$|$23$|$1 \leqslant N,M \leqslant 100, 1 \leqslant K \leqslant 4$| |$2$|$20$|$1 \leqslant N,M \leqslant 300\,000, 1 \leqslant K \leqslant 3$| |$3$|$27$|$1 \leqslant N,M \leqslant 300\,000, 1 \leqslant K \leqslant 4$| |$4$|$30$|$1 \leqslant N,M \leqslant 100\,000, 1 \leqslant K \leqslant 5$| 感谢 Hatsune_Miku 提供的翻译