#include <bits/stdc++.h>
using namespace std;
long long f[110][100010], s[100010], a[100010], d[100010], q[100010], g[100010];
int n, m, p, i, j, k, head, tail;
int main() {
  scanf("%d%d%d", &n, &m, &p);
  for (i = 2; i <= n; ++i) {
    scanf("%d", &j);
    d[i] = d[i - 1] + j;
  }
  for (i = 1; i <= m; ++i) {
    scanf("%d%d", &j, &k);
    a[i] = k - d[j];
  }
  sort(a + 1, a + m + 1);
  for (i = 1; i <= m; ++i) s[i] = s[i - 1] + a[i];
  memset(f, 0x3f, sizeof(f));
  f[0][0] = 0;
  for (i = 1; i <= p; ++i) {
    for (j = 1; j <= m; ++j) g[j] = f[i - 1][j] + s[j];
    q[head = tail = 1] = 0;
    for (j = 1; j <= m; ++j) {
      while (head < tail && (g[j] - g[q[tail]]) * (q[tail] - q[tail - 1]) <=
                                (g[q[tail]] - g[q[tail - 1]]) * (j - q[tail]))
        tail--;
      q[++tail] = j;
      while (head < tail &&
             g[q[head + 1]] - g[q[head]] <= a[j] * (q[head + 1] - q[head]))
        head++;
      f[i][j] = min(f[i - 1][j], g[q[head]] + a[j] * (j - q[head]) - s[j]);
      if (g[j] >= 0x3f3f3f3f3f3f3f3fll) continue;
    }
  }
  printf("%lld\n", f[p][m]);
  return 0;
}
