#AW303. Cats Transport

Cats Transport

题目描述

Zxr960115 是一个大农场主,他饲养了 mm 只可爱的猫咪,并雇用了 pp 名饲养员。农场中有一条笔直的道路,道路旁有 nn 座山丘,从左到右依次编号为 11nn。第 ii 座山丘与第 (i1)(i-1) 座山丘之间的距离为 did_{i} 米。所有饲养员都居住在山丘 11

某天,猫咪们外出玩耍。第 ii 只猫咪前往山丘 hih_{i},并在时间 tit_{i} 结束游玩,随后在山丘 hih_{i} 等待饲养员接它。饲养员必须接走所有猫咪。每位饲养员从山丘 11 走向山丘 nn,途中不在任何山丘停留,并带走途中每个山丘上所有等待的猫咪。饲养员的行走速度为 11 米/单位时间,且他们的运输能力足够强,可以携带任意数量的猫咪。

例如,假设有两座山丘(d2=1d_{2}=1)和一只猫咪,该猫咪在时间 33 结束游玩于山丘 22h1=2h_{1}=2)。若饲养员在时间 22 或时间 33 离开山丘 11,则能接到这只猫咪;但若在时间 11 离开则无法接到。若饲养员在时间 22 出发,猫咪的等待时间为 00;若在时间 33 出发,猫咪的等待时间为 11

你的任务是规划每位饲养员从山丘 11 出发的时间,使得所有猫咪的等待时间总和最小。

输入格式

第一行包含三个整数 n,m,pn,m,p

第二行包含 n1n-1 个正整数 d2,d3,...,dnd_{2},d_{3},...,d_{n}

接下来的 mm 行,每行包含两个整数 hih_itit_i

输出格式

输出一个整数,表示所有猫咪的最小等待时间总和。

请注意:在 C++ 中读写 64 位整数时,请勿使用 %lld 标识符。建议使用 cin/cout 流或 %I64d 标识符。

输入输出样例 #1

输入 #1

4 6 2
1 3 5
1 0
2 1
4 9
1 10
2 10
3 12

输出 #1

3

说明/提示

对于 100%100\% 的数据,$2 \le n \le 10^5,\ 1 \le m \le 10^5,\ 1 \le p \le 100, 1 \le d_{i} < 10^4,1 \le h_i \le n,\ 0 \le t_i \le 10^9$。