#456. 海深时见鲸

海深时见鲸

Description

你有一张 nn 个点,mm 条边的有向图,且每个点拥有一个权值 valival_{i} 。不存在一条边两端连向 同一个点,可能存在两条边两端连接的点分别相同。我们定义 uu 能直接到达 vv , 当且仅当有 uu 直接连向 vv 的边。

现在有 qq 个询问,每次询问给出一个区间 [L,R][L , R],你可以选择该区间内的一个点作为中 心点。一个点能作为中心点的条件是:这个点能直接到达的点不在区间 [L,R][L , R] 之间。 现在,对于每个询问,你需要输出询问区间内所有可以作为中心点的点的权值之和。

Format

Input

第 1 行 3 个由空格隔开的正整数 n,m,q,n, m, q , 分别表示点的个数、有向边的个数和询问的个数。

第 2 行 nn 个由空格隔开的正整数,第 ii 个数 valival_{i}表示第 ii 个点的权值。

接下来 mm 行,每行两个由空格隔开的正整数 ui,vi,u_{i}, v_{i}, 表示一条从 uiu_{i}viv_{i} 的有向边。

接下来 qq 行,每行两个由空格隔开的正整数 Li,Ri,L_{i}, R_{i}, 表示一个询问 [Li,Ri][Li, Ri]

Output

为了减少输出量,设 ansians_{i} 为第 ii 个询问的答案。你只需要输出一行一个整数 xori=1qi×ansixor^q_{i=1} i×ans_{i},即所有询问的编号与答案的乘积异或起来的值。

Samples

4 2 2
3 5 10 6
1 4
2 3
2 3
1 3
16

Limitation

对于 1010% 的数据,n,q300n, q⩽ 300

对于 3030% 的数据,n,q10000n, q ⩽ 10000

对于 6060% 的数据,n,q100000n, q ⩽ 100000

对于另外 2020% 的数据,m=n1m = n − 1, 图是一条链。

对于 100100% 的数据, n,q500000,mmin(n×(n1)/2,500000),1vali300,1ui,vin,uivi,1LiRinn, q ⩽ 500000, m ⩽ min(n × (n − 1)/2, 500000), 1 ⩽ val_{i} ⩽ 300, 1 ⩽u_{i}, v_{i} ⩽ n, u_{i} \ne v_{i}, 1 ⩽ L_{i} ⩽ R_{i} ⩽ n

Tips

建议使用快读