当前位置: 代码迷 >> 综合 >> 1016 Phone Bills
  详细解决方案

1016 Phone Bills

热度:56   发布时间:2023-11-08 14:44:41.0

分析:模拟题目,判断好烦,明个再补。

#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;
}
  相关解决方案