记录 code:
#include<bits/stdc++.h>
using namespace std;
int h,m,h1,m1,tick;
int calctime(int h1,int m1,int h2,int m2){
return abs(h2-h1)*60+abs(m2-m1);
}
int f[32767],t[32767],c[32767],p[32767];
int n;
int main(){
scanf("%d:%d %d:%d %d",&h,&m,&h1,&m1,&n);
tick=calctime(h,m,h1,m1);
for(int i=1;i<=n;i++){
scanf("%d%d%d",t+i,c+i,p+i);
}
for(int i=1;i<=n;i++){
if(p[i]==0)
for(int j=t[i];j<=tick;j++){
f[j]=max(f[j],f[j-t[i]]+c[i]);
}
else{
for(int q=1;q<=p[i];q++){
for(int j=tick;j>=t[i];j--){
f[j]=max(f[j],f[j-t[i]]+c[i]);
}
}
}
}
cout<<f[tick];
}