You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
791 B
32 lines
791 B
#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;
|
|
} |