#include <bits/stdc++.h>
using namespace std;
long long sumd[200005], d[200005], a[200005], f[105][200005], q[200005],
    s[200005];
int main() {
  int n, m, p;
  scanf("%d%d%d", &n, &m, &p);
  for (int i = 2; i <= n; i++) {
    scanf("%lld", &d[i]);
    sumd[i] = sumd[i - 1] + d[i];
  }
  for (int i = 1; i <= m; i++) {
    long long h, t;
    scanf("%lld%lld", &h, &t);
    a[i] = t - sumd[h];
  }
  sort(a + 1, a + 1 + m);
  for (int i = 1; i <= m; i++) s[i] = s[i - 1] + a[i];
  memset(f, 0x3f, sizeof(f));
  f[0][0] = 0;
  for (int i = 1; i <= p; i++) {
    f[i][0] = 0;
    int l = 1, r = 1;
    for (int j = 1; j <= m; j++) {
      while (l < r &&
             f[i - 1][q[l + 1]] + s[q[l + 1]] - (f[i - 1][q[l]] + s[q[l]]) <=
                 a[j] * (q[l + 1] - q[l]))
        l++;
      f[i][j] = f[i - 1][q[l]] + s[q[l]] - a[j] * q[l] + j * a[j] - s[j];
      while (l < r &&
             (f[i - 1][q[r]] + s[q[r]] - (f[i - 1][q[r - 1]] + s[q[r - 1]])) *
                     (j - q[r]) >=
                 (f[i - 1][j] + s[j] - (f[i - 1][q[r]] + s[q[r]])) *
                     (q[r] - q[r - 1]))
        r--;
      q[++r] = j;
    }
  }
  printf("%lld\n", f[p][m]);
  return 0;
}
