Files
python/TangDou/LanQiaoBei/LanQiao12ShengSai/BC4_ErWei_DP_2_TangDou.cpp

32 lines
791 B
C++
Raw Normal View History

2025-08-30 18:35:01 +08:00
#include <bits/stdc++.h>
using namespace std;
const int N=1010;
int n,m,w[N],v[N],f[N][N];
string s[N][N];
int main() {
cin>>n>>m;
for (int i = 1; i <=n; ++i) cin>>w[i]>>v[i];
for (int i = 1; i <=n; ++i) {
for (int j = 1; j <=m; ++j) {
int x=f[i-1][j-w[i]]+v[i];
int y=f[i-1][j];
if(j>=w[i]){
if(x>y){
f[i][j]=x;
s[i][j]=s[i-1][j-w[i]]+' '+char(i+'0');
}else{
f[i][j]=y;
s[i][j]=s[i-1][j];
}
}
else{
f[i][j]=y;
s[i][j]=s[i-1][j];
}
}
}
cout<<f[n][m]<<endl;
cout<<s[n][m];
return 0;
}