zoukankan      html  css  js  c++  java
  • PAT1016

    #include<cstdio>
    #include<algorithm>
    #include<vector>
    #include<cstring>
    using namespace std;
    const int maxn=1510;
    int fare[1510];
    struct R{
    char name[25];
    int M,D,h,m;
    int totalMin;
    int dayM;
    bool state;
    };
    bool cmp(R &r1,R &r2)
    {
    int f=strcmp(r1.name,r2.name);
    if(f!=0){
    if(f<0)return true;
    return false;
    }
    else {
    return r1.totalMin<r2.totalMin;
    }
    }
    int n;
    R rec[maxn];
    int main()
    {
    //freopen("in.txt","r",stdin);
    for(int i=0;i<24;i++){
    scanf("%d",&fare[i*60]);
    for(int j=i*60+1;j<(i+1)*60;j++)
    fare[j]=fare[j-1];
    }
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
    char c[20];
    scanf("%s %d:%d:%d:%d %s",
    rec[i].name,&rec[i].M,&rec[i].D,&rec[i].h,&rec[i].m,c);
    rec[i].totalMin=rec[i].D*24*60+rec[i].h*60+rec[i].m;
    rec[i].dayM=rec[i].h*60+rec[i].m;
    if(strcmp(c,"on-line")==0)rec[i].state=true;
    else rec[i].state=false;
    }
    sort(rec,rec+n,cmp);
    int nxtP=0;
    while(nxtP<n)
    {
    char name[20];
    strcpy(name,rec[nxtP].name);
    int i=nxtP;
    //在跳过不需要输出的记录遇到了一些困难
    //参考算法笔记的代码
    int needPrint=0;
    while(i<n&&strcmp(name,rec[i].name)==0){
    if(needPrint==0&&rec[i].state==true)needPrint=1;
    else if(needPrint==1&&rec[i].state==false)needPrint=2;
    i++;
    }
    if(needPrint<2){
    nxtP=i;
    continue;
    }
    printf("%s %02d
    ",name,rec[nxtP].M);
    double totalMoney=0;
    for(int j=nxtP;j<i-1;j++)
    {
    if(rec[j].state==true&&rec[j+1].state==false){
    int s=rec[j].totalMin,e=rec[j+1].totalMin;
    int t=s;
    double money=0;
    while(t<e){
    money+=fare[t%1440];
    t++;
    }
    printf("%02d:%02d:%02d %02d:%02d:%02d %d $%.2lf
    "
    ,rec[j].D,rec[j].h,rec[j].m
    ,rec[j+1].D,rec[j+1].h,rec[j+1].m
    ,e-s,money/100);
    totalMoney+=money;
    }
    }
    printf("Total amount: $%.2lf
    ",totalMoney/100);
    nxtP=i;
    }
    //getchar();
    }
  • 相关阅读:
    Mysql权限控制
    ionic中修改图标的问题
    在centos中使用vim编辑器
    使用laravel的任务调度(定时执行任务)
    在预装win8的电脑上换win7系统讲解
    游戏电脑需要看的配置
    数据结构学习之二叉树
    数据结构排序算法之希尔排序
    数据结构排序算法之归并排序
    数据结构排序算法之简单插入排序
  • 原文地址:https://www.cnblogs.com/MalcolmMeng/p/8442974.html
Copyright © 2011-2022 走看看