感谢dalao
#include<bits/stdc++.h>
using namespace std;
int tim,m,n,kl[5000][5],k,b,w;
int know[10086],f[10086],v[10086];
int main(){
scanf("%d%d",&k,&w);
b=w/k;
scanf("%d%d",&m,&n);
for(int i=1;i<=n;i++) scanf("%d",&know[i]);
for(int i=1;i<=m;i++){
int q,p;
scanf("%d%d",&q,&p);
kl[i][1]=q;
for(int j=1;j<=n;j++){
if(kl[i][1]==j){
kl[i][2]=know[i]*b;
break;
}
}
v[i]=p;
}
scanf("%d",&tim);
for(int i=1;i<=m;i++){
for(int j=tim;j>=kl[i][2];j--){
f[j]=max(f[j],f[j-kl[i][2]]+v[i]);
}
}
printf("%d",f[tim]);
return 0;
}