#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,p,q[100005];
long long d[100005],b[100005],a[100005],c[100005],f[105][100005];
long long gy(int k,int j){return f[j-1][k]+c[k];}
int main()
{
int i,j,k,h,t;
scanf("%d%d%d",&n,&m,&p);
for(i=2;i<=n;i++)scanf("%lld",&d[i]),d[i]+=d[i-1];
for(i=1;i<=m;i++)scanf("%d%lld",&h,&b[i]),a[i]=b[i]-d[h];
sort(a+1,a+m+1);
for(i=1;i<=m;i++)c[i]=c[i-1]+a[i];
memset(f,0x3f,sizeof f);
for(i=0;i<=p;i++)f[i][0]=0;
for(j=1;j<=p;j++){
h=t=q[0]=0;
for(i=1;i<=m;i++){
while(h<t&&(gy(q[h+1],j)-gy(q[h],j))<=a[i]*(q[h+1]-q[h]))h++;
k=q[h],f[j][i]=f[j-1][k]-a[i]*k+c[k]+a[i]*i-c[i];
while(h<t&&(gy(q[t],j)-gy(q[t-1],j))*(i-q[t])>=(gy(i,j)-gy(q[t],j))*(q[t]-q[t-1]))t--;
q[++t]=i;
}
}
printf("%lld\n",f[p][m]);
return 0;
}