#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int n, m, p, q[N][105];
long long f[N][105], d[N], h[N], t[N], a[N], sum[N];
long long equ(int i, int j, int k) { return -j * a[i] + f[j][k - 1] + sum[j]; }
long long dy(int i, int j, int k) {
  long long yi = f[i][k - 1] + sum[i];
  long long yj = f[j][k - 1] + sum[j];
  return yi - yj;
}
long long dx(int i, int j) {
  long long xi = -i, xj = -j;
  return xj - xi;
}
int main() {
  scanf("%d%d%d", &n, &m, &p);
  for (int i = 2; i <= n; i++) {
    scanf("%lld", &d[i]);
    d[i] += d[i - 1];
  }
  for (int i = 1; i <= m; i++) {
    scanf("%lld%lld", &h[i], &t[i]);
    a[i] = t[i] - d[h[i]];
  }
  sort(a + 1, a + m + 1);
  for (int i = 1; i <= m; i++) sum[i] = sum[i - 1] + a[i];
  int l = 0, h = 0, t = 0;
  for (int k = 1; k <= p; k++) {
    l = t, h = 0, t = 0;
    for (int i = 1; i <= m; i++) {
      while (h < l && h < i - 1 &&
             equ(i, q[h][k - 1], k) >= equ(i, q[h + 1][k - 1], k))
        h++;
      f[i][k] = equ(i, q[h][k - 1], k) - sum[i] + i * a[i];
      while (t > 1 && dy(i, q[t][k], k + 1) * dx(i, q[t - 1][k]) <=
                          dy(i, q[t - 1][k], k + 1) * dx(i, q[t][k]))
        t--;
      q[++t][k] = i;
    }
  }
  long long ans = 1e16;
  for (int k = 1; k <= p; k++) ans = min(ans, f[m][k]);
  printf("%lld\n", ans);
  return 0;
}
