地形计算
题号:NC54071
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

Venn忙碌了一整天,回到了某高中,发现自己学校正在施工,整个学校的地形全变了!Venn作为一个路痴,想要计算施工结束以后地形的复杂度。

某高中的地形可以抽象为一个n个点,m条边的无向带权简单图。(如果你不清楚什么是简单图,请阅读题面描述末尾加粗部分)。

Venn认为一个无向图的复杂程度,和它的四元环有关。一个四元环是指如果存在四个不相同的点u,v,x,y并且存在边(u,v),(v,x),(x,y),(y,u),那么这四个点和这四条边所组成的集合称为一个四元环。一个四元环的权值,是组成他的所有顶点的权值之和。Venn想要统计这张图所有本质不同的四元环的权值之和(如果你不知道什么是本质不同,请阅读文末加粗部分)。由于这个答案可能很大,你只需要求出它对取模的值就行了。

注1:简单图是指没有重边和自环的图。

注2:两个四元环本质不同,当且仅当其中至少有一个点不同,或者一个边不同。

点击下载大样例

输入描述:

第一行两个正整数表示n,m 

接下来一行n个正整数a_i 表示编号为i的点的点权。

接下来m行每行两个正整数u,v表示编号为u的点和编号为v的点之间有一条边。

输出描述:

一行一个整数表示答案。
示例1

输入

复制
6 7
1 2 3 4 5 6
1 2
2 3
4 3
1 4
5 2
5 6
6 1

输出

复制
24

说明

共有(1,2,3,4) 和 (1,2,5,6)两组,权值分别为10,14

备注:

对于的数据,

对于的数据,

对于的数据,,