惨案,全部RE
#include<iostream>
#include<algorithm>
#include<climits>
using namespace std;
int v[1005], w[1005], f[10005], t, s[1005];
int main()
{
int m, n, i, j, h1, m1, h2, m2;
scanf("%d:%d", &h1, &m1);
scanf("%d:%d", &h2, &m2);
t = (h2 - h1 + (h2 < h1 ? 24 : 0)) * 60 + m2 - m1;
cin >> m;
fill(f, f + 100005, INT_MIN);
f[0] = 0;
for (int i = 1; i <= m; i++)
{
cin >> v[i] >> w[i] >> s[i];
if (s[i] == 0) s[i] = INT_MAX / v[i];
}
for (int i = 1; i <= m; i++)
for (int j = t; j >= v[i]; j--)
{
int maxTimes = min(s[i], j / v[i]);
for (int k = 1; k <= maxTimes; k++)
{
int cost = k * v[i];
if (cost <= j)
f[j] = max(f[j], f[j - cost] + k * w[i]);
}
}
cout << f[t] << endl;
return 0;
}