49,425
社区成员




#include<bits/stdc++.h>
using namespace std;
const int N=2050;
typedef long long ll;
int n, k, m, v[N], w[N];
int dp[10050][2];
int main(){
cin >> n >> m >> k;
for (int i = 1; i <= n; ++i) cin >> w[i] >> v[i];
for (int i = 1; i <= n; ++i) {
for (int j = m; j >= 0; --j) {
if (w[i] <= j) dp[j][0] = max(dp[j][0], dp[j - w[i]][0] + v[i]), dp[j][1] = max(dp[j][1], dp[j - w[i]][1] + v[i]);
if (w[i] + k <= j) dp[j][1] = max(dp[j][1], dp[j - w[i] - k][0] + v[i] * 2);
}
}
cout << dp[m][1];
return 0;
}