测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A10299. Foe Pairs

编程题 普及/提高-

题目描述

You are given a permutation $p$ of length $n$ . Also you are given $m$ foe pairs $(a_{i},b_{i})$ ( $1<=a_{i},b_{i}<=n,a_{i}≠b_{i}$ ).

Your task is to count the number of different intervals $(x,y)$ ( $1<=x<=y<=n$ ) that do not contain any foe pairs. So you shouldn't count intervals $(x,y)$ that contain at least one foe pair in it (the positions and order of the values from the foe pair are not important).

Consider some example: $p=[1,3,2,4]$ and foe pairs are ${(3,2),(4,2)}$ . The interval $(1,3)$ is incorrect because it contains a foe pair $(3,2)$ . The interval $(1,4)$ is also incorrect because it contains two foe pairs $(3,2)$ and $(4,2)$ . But the interval $(1,2)$ is correct because it doesn't contain any foe pair.

输入格式

The first line contains two integers $n$ and $m$ ( $1<=n,m<=3·10^{5}$ ) — the length of the permutation $p$ and the number of foe pairs.

The second line contains $n$ distinct integers $p_{i}$ ( $1<=p_{i}<=n$ ) — the elements of the permutation $p$ .

Each of the next $m$ lines contains two integers $(a_{i},b_{i})$ ( $1<=a_{i},b_{i}<=n,a_{i}≠b_{i}$ ) — the $i$ -th foe pair. Note a foe pair can appear multiple times in the given list.

输出格式

Print the only integer $c$ — the number of different intervals $(x,y)$ that does not contain any foe pairs.

Note that the answer can be too large, so you should use $64$ -bit integer type to store it. In C++ you can use the long long integer type and in Java you can use long integer type.

输入输出样例

输入 #1
4 2
1 3 2 4
3 2
2 4
输出 #1
5
输入 #2
9 5
9 7 2 3 1 4 6 5 8
1 6
4 5
2 7
7 2
2 7
输出 #2
20

说明/提示

In the first example the intervals from the answer are $(1,1)$ , $(1,2)$ , $(2,2)$ , $(3,3)$ and $(4,4)$ .
上一题 去做题 下一题