求各位大佬帮我调一下吧,蒟蒻DP没学好,感觉思路挺对,WA了3个
#include <iostream>
using namespace std;
long long f[1010];
int w[1010], v[1010], c[1010];
int main()
{
int n, m, maxc = 0;
cin >> n >> m;
for (int i = 1; i <= n; i++)
{
cin >> w[i] >> v[i] >> c[i];
maxc = max(maxc, c[i]);
}
for (int i = 1; i <= maxc; i++)
{
for (int j = m; j >= 1; j--)
for (int k = 1; k <= n; k++)
if (c[k] == i && j >= w[k]) f[j] = max(f[j], f[j - w[k]] + v[k]);
}
cout << f[m] << endl;
return 0;
}