#include <bits/stdc++.h>
using namespace std;
const int maxn = 100001;
const int maxl = 101;
const long long inf = 1ll << 45;
const int mod = 1000000007;
const double eps = 1e-8;
int n, m, p;
int d[maxn], t[maxn], q[maxn];
long long sum[maxn], dp[2][maxn];
long long f[maxn];
int main() {
  int a, b;
  scanf("%d%d%d", &n, &m, &p);
  for (int i = 2; i <= n; i++) {
    scanf("%d", d + i);
    d[i] += d[i - 1];
  }
  for (int i = 1; i <= m; i++) {
    scanf("%d%d", &a, &b);
    t[i] = b - d[a];
  }
  sort(t + 1, t + m + 1);
  for (int i = 1; i <= m; i++) sum[i] = sum[i - 1] + t[i];
  for (int i = 1; i <= m; i++) dp[0][i] = inf;
  int pt = 1;
  for (int i = 1; i <= p; i++) {
    dp[pt][0] = inf;
    for (int j = 0; j <= m; j++) f[j] = dp[pt ^ 1][j] + sum[j];
    int front = 1, tail = 0;
    for (int j = 1; j <= m; j++) {
      while (tail > front &&
             (f[q[tail]] - f[q[tail - 1]]) * (j - 1 - q[tail]) >=
                 (f[j - 1] - f[q[tail]]) * (q[tail] - q[tail - 1]))
        tail--;
      q[++tail] = j - 1;
      while (tail > front && f[q[front + 1]] - f[q[front]] <=
                                 (long long)(q[front + 1] - q[front]) * t[j])
        front++;
      dp[pt][j] = (long long)t[j] * (j - q[front]) - sum[j] + f[q[front]];
    }
    pt ^= 1;
  }
  printf("%lld\n", dp[pt ^ 1][m]);
}
