#L2779. 「BalticOI 2018」路径

「BalticOI 2018」路径

题目描述

给定一个 NN 个点 MM 条边的无向图,每个点有 1K1 \sim K 中的一种颜色。求图上有多少条长度至少为 2 的简单路径,满足路径上每个点的颜色互不相同。

路径的连接顺序不同视为不同路径。


输入格式

第一行:N,M,KN, M, K(点数、边数、颜色数)

第二行:NN 个整数,表示每个点的颜色(1K1 \sim K

接下来 MM 行:每行两个整数 a,ba, b,表示一条边

数据保证图无自环无重边。


输出格式

一个整数,表示满足条件的路径条数(保证不超过 101810^{18}


样例 1

输入

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

输出

10

解释:满足条件的路径有 10 条,包括单边路径(长度 2)和部分长度为 3 的路径。


样例 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

数据范围与提示

子任务 分值 数据范围
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$