K 教授是国际信息学奥林匹克竞赛日本委员会的主席。他热爱占卜,经常进行各种各样的占卜。今天,他决定用卡片进行一次占卜,以查看今年日本代表队在 IOI 中的表现。
每张卡片的正反两面各写有一个整数。一张卡片两面上的整数不一定相等。如果你把一张卡片放在桌子上,使得你能看到其中一面的整数,那么你就无法看到另一面的整数。
占卜过程如下:
- 首先,K 教授在桌子上放了 $N$ 张卡片。卡片编号为 $1$ 到 $N$。卡片 $i$ 的一面写着整数 $A_i$,另一面写着整数 $B_i$。他将卡片放在桌子上,使得对于每张卡片 $i$,其正面显示的整数为 $A_i$。
- 对于 $j = 1, \dots, K$,他执行以下操作:“如果卡片上显示的整数小于或等于 $T_j$,则将该卡片翻转。”
- 占卜的结果是这 $K$ 次操作完成后,桌面上所有卡片显示的整数之和。
在某个时刻,K 教授意识到决定哪些卡片需要翻转是一项枯燥的工作。他最终放弃了使用卡片进行占卜。他只想知道在完成这 $K$ 次操作后,桌面上卡片显示的整数之和。
题目描述
编写一个程序,给定卡片上写的整数以及操作信息,计算所有操作完成后桌面上卡片显示的整数之和。
输入格式
从标准输入读取以下数据:
- 第一行包含两个空格分隔的整数 $N$ 和 $K$。这意味着有 $N$ 张卡片,操作次数为 $K$。
- 接下来的 $N$ 行中,第 $i$ 行($1 \le i \le N$)包含两个空格分隔的整数 $A_i$ 和 $B_i$。这意味着卡片 $i$ 上写的整数是 $A_i$ 和 $B_i$。
- 接下来的 $K$ 行中,第 $j$ 行($1 \le j \le K$)包含一个整数 $T_j$。这意味着在第 $j$ 次操作中,如果卡片上显示的整数小于或等于 $T_j$,则该卡片将被翻转。
输出格式
将 $K$ 次操作完成后桌面上卡片显示的整数之和输出到标准输出。
数据范围
所有输入数据满足以下条件:
- $1 \le N \le 200\,000$
- $1 \le K \le 200\,000$
- $1 \le A_i \le 1\,000\,000\,000$ ($1 \le i \le N$)
- $1 \le B_i \le 1\,000\,000\,000$ ($1 \le i \le N$)
- $1 \le T_j \le 1\,000\,000\,000$ ($1 \le j \le K$)
子任务
子任务 1 [4 分]
满足以下条件: $N \le 1\,000$ $K \le 1\,000$
子任务 2 [31 分]
满足以下条件: $N \le 40\,000$ $K \le 40\,000$
子任务 3 [65 分]
无附加限制。
样例
样例输入 1
5 3 4 6 9 1 8 8 4 2 3 7 8 2 9
样例输出 1
18
说明
起初,五张卡片上显示的整数分别为 $4, 9, 8, 4, 3$。操作过程如下:
- 如果卡片上显示的整数小于或等于 $8$,则将其翻转。操作后,卡片上显示的整数分别为 $6, 9, 8, 2, 7$。
- 如果卡片上显示的整数小于或等于 $2$,则将其翻转。操作后,卡片上显示的整数分别为 $6, 9, 8, 4, 7$。
- 如果卡片上显示的整数小于或等于 $9$,则将其翻转。操作后,卡片上显示的整数分别为 $4, 1, 8, 2, 3$。
所有操作完成后,桌面上卡片显示的整数之和为 $4 + 1 + 8 + 2 + 3 = 18$。