Codeforces Round 185 (Div. 1) |
---|

Finished |

Virtual contest is a way to take part in past contest, as close as possible to participation on time. It is supported only ICPC mode for virtual contests.
If you've seen these problems, a virtual contest is not for you - solve these problems in the archive.
If you just want to solve some problem from a contest, a virtual contest is not for you - solve this problem in the archive.
Never use someone else's code, read the tutorials or communicate with other person during a virtual contest.

data structures

dp

*2400

No tag edit access

The problem statement has recently been changed. View the changes.

×
B. Cats Transport

time limit per test

2 secondsmemory limit per test

256 megabytesinput

standard inputoutput

standard outputZxr960115 is owner of a large farm. He feeds *m* cute cats and employs *p* feeders. There's a straight road across the farm and *n* hills along the road, numbered from 1 to *n* from left to right. The distance between hill *i* and (*i* - 1) is *d*_{i} meters. The feeders live in hill 1.

One day, the cats went out to play. Cat *i* went on a trip to hill *h*_{i}, finished its trip at time *t*_{i}, and then waited at hill *h*_{i} for a feeder. The feeders must take all the cats. Each feeder goes straightly from hill 1 to *n* without waiting at a hill and takes all the waiting cats at each hill away. Feeders walk at a speed of 1 meter per unit time and are strong enough to take as many cats as they want.

For example, suppose we have two hills (*d*_{2} = 1) and one cat that finished its trip at time 3 at hill 2 (*h*_{1} = 2). Then if the feeder leaves hill 1 at time 2 or at time 3, he can take this cat, but if he leaves hill 1 at time 1 he can't take it. If the feeder leaves hill 1 at time 2, the cat waits him for 0 time units, if the feeder leaves hill 1 at time 3, the cat waits him for 1 time units.

Your task is to schedule the time leaving from hill 1 for each feeder so that the sum of the waiting time of all cats is minimized.

Input

The first line of the input contains three integers *n*, *m*, *p* (2 ≤ *n* ≤ 10^{5}, 1 ≤ *m* ≤ 10^{5}, 1 ≤ *p* ≤ 100).

The second line contains *n* - 1 positive integers *d*_{2}, *d*_{3}, ..., *d*_{n} (1 ≤ *d*_{i} < 10^{4}).

Each of the next *m* lines contains two integers *h*_{i} and *t*_{i} (1 ≤ *h*_{i} ≤ *n*, 0 ≤ *t*_{i} ≤ 10^{9}).

Output

Output an integer, the minimum sum of waiting time of all cats.

Please, do not write the %lld specifier to read or write 64-bit integers in С++. It is preferred to use the cin, cout streams or the %I64d specifier.

Examples

Input

4 6 2

1 3 5

1 0

2 1

4 9

1 10

2 10

3 12

Output

3

Codeforces (c) Copyright 2010-2024 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Mar/02/2024 17:19:06 (j1).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|