#3625. 模拟9观测窗的缺测记录 (missing_observations)

模拟9观测窗的缺测记录 (missing_observations)

观测窗的缺测记录 (missing_observations)

题目描述

一条长为 NN 的观测带上有 NN 个采样点,第 ii 个采样点的读数为 aia_i。研究员需要统计所有连续观测窗的读数总和。

不过设备日志里还有 MM 条缺测规则。每条规则形如 x yx\ y,表示:只要某个观测窗的左端点或右端点等于 xx,那么在计算这个观测窗的总和时,采样点 yy 的读数不可使用。

如果同一个观测窗内,同一个采样点被多条规则要求不可使用,它也只会被删去一次。

对所有满足 1lrN1 \le l \le r \le N 的连续区间 [l,r][l,r],原本区间读数和为 [ \sum_{k=l}^{r} a_k ]

若存在规则 (x,y)(x,y),且 l=xl=xr=xr=x,则在该区间求和时不计入 aya_y。当然,只有当 yy 位于区间 [l,r][l,r] 内时,这条删除才会产生影响。

请计算所有区间结果之和对 109+710^9+7 取模后的值。

输入格式

在文件 missing_observations.in 中读入。 第一行两个整数 NNMM。 第二行 NN 个整数 a1,a2,,aNa_1,a_2,\dots,a_N。 接下来 MM 行,每行两个整数 xxyy,表示一条缺测规则。

输出格式

在文件 missing_observations.out 中输出。 输出一个整数,表示答案对 109+710^9+7 取模后的值。

样例

输入数据1

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

输出数据1

69

提示

数据范围

  • 对于10%的数据,N,M100N,M \le 100ai10a_i \le 10
  • 对于另一部分数据,N,M5000N,M \le 5000ai10a_i \le 10
  • 另有20%的数据,M=0M=0
  • 对于100%的数据,1N,M1061 \le N,M \le 10^61ai<109+71 \le a_i<10^9+71x,yN1 \le x,y \le N
  • 数据保证不会出现完全相同的规则。