codeforces 1154F
題意:
題解:
#include <bits\stdc++.h>
using namespace std;
const int N = 200001;
int a[N], w[N], v[N], sum[N];
int dp[N];
int main() {
int n, m ,k;
cin >> n >> m >> k;
for(int i = 1 ; i <= n ; i++){
cin >> a[i];
}
for(int i = 1 ; i <= m ; i++){
cin >> w[i] >> v[i];
}
sort(a+1, a+1+n);
for(int i = 1 ; i <= n ; i++){
sum[i] = sum[i-1]+a[i];
}
for(int j = 1 ; j <= k ; j++){
for(int i = 1 ; i <= m ; i++){
if(j >= w[i]){
dp[j] = max(dp[j], dp[j-w[i]]+sum[j-w[i]+v[i]]-sum[j-w[i]]);
}
}
}
cout << sum[k]-dp[k] << endl;
return 0;
}