全部评论
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int T;//number of test
cin >> T;
for(int x = 0; x < T; x++)
{
int n, bot, top;
cin >> n >> bot >> top ;
if (n < 1 || n > 10)
{
cout << "input n error!" << endl;
break;
}
if (top < 0 || top > 10000)
{
cout << "input top error!" << endl;
break;
}
int c[10][101], v[10][101];
int m[10];
for (int s = 0; s < n; s++)
{
cin >> m[s];
for (int t = 0; t < m[s]; t++)
{
cin >> c[s][t] >> v[s][t];
}
}
int maxs = 0;
int consum;
for (int a = 0; a < n; a++)
{
vector<int> f(top, 0);
consum = 0;
for (int i = 0; i < m[a]; ++i)
{
for (int j = top - 1; j >= bot; --j)
{
if (c[a][i] <=j)
{
f[j] = max(f[j], f[j - c[a][i]] + v[a][i]);
}
}
if (maxs < f[top - 1])
{
maxs = f[top - 1];
consum += c[a][i];
}
}
}
cout <<consum<<" "<< maxs << endl;
}
return 0;
}
楼上那个有bug好像,不能通过测试。
相关推荐
点赞 评论 收藏
分享