zoukankan      html  css  js  c++  java
  • PAT (Advanced Level) 1017 Queueing at Bank

    题解

             模拟。记得把早于8:00达到的人的等待时间加上。

    代码

    #include<bits/stdc++.h>
    using namespace std;
    struct node
    {
        int time,get_time,p_time;
        node(int c,int a,int b)
        {
            time=c;
            get_time=a;
            p_time=b;
        }
        bool operator <(const node & n) const
        {
            if(get_time!=n.get_time)
                return get_time<n.get_time;
            else
                return time<n.time;
        }
    };
    vector<node> v;
    int limit_up,limit_down,finish[105];
    int str_to_sec(string str);
    int main()
    {
        int i,n,k,p_time,get_time,time,ans=0;
        string str;
        limit_up=str_to_sec("08:00:00");
        limit_down=str_to_sec("17:00:00");
        scanf("%d%d",&n,&k);
        for(i=0;i<n;i++)
        {
            cin>>str>>p_time;
            get_time=time=str_to_sec(str);
            if(time>limit_down) continue;
            else
            {
                if(time<limit_up)
                {
                    ans+=(limit_up-time);
                    get_time=limit_up;
                }
                v.push_back(node(time,get_time,p_time*60));
            }
        }
        sort(v.begin(),v.end());
        for(i=0;i<v.size();i++)
        {
            sort(finish,finish+k);
            if(v[i].get_time<finish[0])
            {
                ans+=finish[0]-v[i].get_time;
                finish[0]+=v[i].p_time;
            }
            else
            {
                finish[0]=v[i].get_time+v[i].p_time;
            }
        }
        printf("%.1lf",ans/(v.size()*60.0));
        system("pause");
        return 0;
    }
    int str_to_sec(string str)
    {
      int h,m,s;
      h=(str[0]-'0')*10+str[1]-'0';
      m=(str[3]-'0')*10+str[4]-'0';
      s=(str[6]-'0')*10+str[7]-'0';
      return h*3600+m*60+s;
    }
  • 相关阅读:
    通过日期获得星期方法
    去掉标签方法
    获取当前时间方法
    根据身份证计算年龄方法
    查询日志
    Vagrant打造Laravel开发环境(LNMP)
    mysql创建索引以及进程过程中出现的问题
    array_to_sql
    Linux创建快捷方式(链接)命令ln
    Mac搭建PHP Phalcon框架
  • 原文地址:https://www.cnblogs.com/VividBinGo/p/12221529.html
Copyright © 2011-2022 走看看