分析:模拟题目,判断好烦,明个再补。
#include<bits/stdc++.h>
#define maxn 1100
using namespace std;
typedef struct Node{
string name;int month,da,hh,mm;string state;
}node;
node a[maxn];
int cost[30];
int T;
bool cmp(node x,node y){
if(x.name==y.name &&x.da==y.da) return x.hh<y.hh;else if(x.name==y.name&&x.da!=y.da) return x.da<y.da;else return x.name>y.name;
}
int main(){
for(int i=0;i<24;i++){
cin>>cost[i];}cin>>T;for(int i=0;i<T;i++){
cin>>a[i].name;scanf("%s%d:%d:%d:%d",&a[i].month,&a[i].da,&a[i].hh,&a[i].mm);cin>>a[i].state;}sort(a,a+T,cmp);for(int i=0;i<T-1;i++){
int cur=i;int pos=cur+1;if(judge(cur,pos)){
cout<<a[cur].name<<" "<<a[cur].month<<endl;print("%d:%d:%d",a[cur].da,a[cur].hh,a[cur].mm);print("%d:%d:%d",a[pos].da,a[pos].hh,a[pos].mm);int ans=a[pos].hh*60+a[pos].mm-a[cur]*60-a[cur].mm;cout<<ans<<" $";int spend=0;}}return 0;
}