#include <cstdio>
#include <algorithm>
using namespace std;
int n , qwq;
int v[10005] , a[10005];
int w[10005];
int dp[10005];
int main(void){
int h1 , m1 , h2 , m2;
scanf("%d:%d %d:%d %d" , &h1 , &m1 , &h2 , &m2 , &n);
m1 += h1 * 60;
m2 += h2 * 60;
qwq = m2 - m1;
for(int i = 1;i <= n;i++)
scanf("%d%d%d" , &w[i] , &v[i] , &a[i]);
for(int i = 1;i <= n;i++){
if(a[i] == 0){
for(int j = w[i];j <= qwq;j++)
dp[j] = max(dp[j] , dp[j - w[i]] + v[i]);
}
else{
if(a[i] * w[i] >= qwq){
for(int j = w[i];j <= qwq;j++)
dp[j] = max(dp[j - w[j]] + v[j] , dp[j]);
}
else{
int tmp = 1;
while(true){
if(a[i] > tmp){
a[i] -= tmp;
for(int j = qwq;j >= w[i] * tmp;j--)
dp[j] = max(dp[j - w[i] * tmp] + v[i] * tmp , dp[j]);
tmp <<= 1;
continue;
}
tmp = a[i];
for(int j = qwq;j >= w[i] * tmp;j--)
dp[j] = max(dp[j - w[i] * tmp] + v[i] * tmp , dp[j]);
break;
}
}
}
}
printf("%d\n" , dp[qwq]);
}
不知道为什么样例输出的是6。但是居然过了QAQ。