最后一个点没过
#include<bits/stdc++.h>
using namespace std;
int dp[5050][5050],w[5050],v[5050];
int main(){
float a,b;
cin>>a>>b;
a=a/b;
int c,d;
cin>>c>>d;
int e[d+1];
for(int i=1;i<=d;i++){
cin>>e[i];
}
int f[c+1][2];
for(int i=1;i<=c;i++){
cin>>f[i][0]>>f[i][1];
}
int g;
cin>>g;
for(int i=1;i<=c;i++){
w[i]=e[f[i][0]]/a;
v[i]=f[i][1];
}
for(int i=1;i<=c;i++){
for(int j=1;j<=g;j++){
if(w[i]<=j)
dp[i][j]=max(dp[i-1][j],v[i]+dp[i-1][j-w[i]]);
else dp[i][j]=dp[i-1][j];
}
}
cout<<dp[c][g];
return 0;
}