#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
double Q, N;
char name, comer;
double A, B, C, ex, D;
while (cin >> Q >> N && N)
{
int n, x = 2;
double Lu[1000], Hui[1000];
double Max = 0;
memset(Hui, 0, sizeof(Hui));
cout << fixed;
cout.precision(2);
for (int i = 1; i <= N; i++)
{
cin >> n;
D = 1, A = B = C = 0;
for (int j = 1; j <= n; j++)
{
cin >> name >> comer >> ex;
if (name == 'A')
A += ex;
else if (name == 'B')
B += ex;
else if (name == 'C')
C += ex;
else
D = 0;
}
if (D && A <= 600 && B <= 600 && C <= 600 && A + B + C <= 1000)
Lu[x++] = A + B + C;
}
for (int i = 2; i < x; i++)
for (int j = i - 1; j > 0; j--)
{
if (Hui[j] + Lu[i] <= Q)
Hui[i] = max(Hui[i], Hui[j] + Lu[i]);
}
for (int i = 2; i < x; i++)
if (Max < Hui[i])
Max = Hui[i];
cout << Max << endl;
}
return 0;
}
HDU ACM 9 1864 最大报销额(动态规划)
最新推荐文章于 2018-12-27 22:03:16 发布