#include <bits/stdc++.h>
using namespace std;
int t[10] = {0, 1, 2, 3, 5, 10, 20}, w[100000];
int a[10], dp[100000], cnt = 0;
int main() {
for(int i = 1; i <= 6; i++) {
int k, x = 1;
cin >> k;
while(k >= x) {
w[++cnt] = x*t[i];
k -= x;
x *= 2;
}
w[++cnt] = k*t[i];
}
for(int i = 1; i <= cnt; i++) {
dp[i] = max(dp[i], dp[i-1]+w[i]);
}
cout << "Total=" << dp[cnt];
return 0;
}
随便写的一个多重背包,92分,能怎么优化?