zoukankan      html  css  js  c++  java
  • PAT (Advanced Level) 1014. Waiting in Line (30)

    简单模拟题。

    #include<iostream>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    #include<cstdio>
    #include<map>
    #include<queue>
    using namespace std;
    
    struct X
    {
        int st;
        int len;
        int en;
    }p[1500];
    queue<int>Q[25];
    int n,m,k,s;
    
    bool check()
    {
        for(int i=1;i<=n;i++)
            if(!Q[i].empty()) return 1;
        return 0;
    }
    
    int main()
    {
        scanf("%d%d%d%d",&n,&m,&k,&s);
        for(int i=1;i<=k;i++) scanf("%d",&p[i].len);
        int pos;
        for(pos=1;pos<=min(k,n);pos++) { p[pos].st=480; Q[pos].push(pos); }
        for(;pos<=min(n*m,k);pos++)
        {
            int id=pos%n; if(id==0) id=n;
            Q[id].push(pos);
        }
        while(1)
        {
            if(check()==0) break;
            int Min=999999;
            for(int i=1;i<=n;i++)
            {
                if(Q[i].empty()) continue;
                int id=Q[i].front();
                Min=min(Min,p[id].st+p[id].len);
            }
    
            for(int i=1;i<=n;i++)
            {
                if(Q[i].empty()) continue;
                int id=Q[i].front();
                if(p[id].st+p[id].len==Min)
                {
                    p[id].en=p[id].st+p[id].len;
                    Q[i].pop();
                    if(pos<=k) Q[i].push(pos++);
                    if(!Q[i].empty()) p[Q[i].front()].st=p[id].en;
                }
            }
        }
        for(int i=1;i<=s;i++)
        {
            int id; scanf("%d",&id);
            if(p[id].st/60>=17) printf("Sorry
    ");
            else printf("%02d:%02d
    ",p[id].en/60,p[id].en%60);
        }
        return 0;
    }
  • 相关阅读:
    名字 地址 路由
    截断二进制指数退避
    硬件地址 软件地址
    基带信号 调制
    非对称数字用户线
    码分复用 码分多址
    时分复用 帧长度
    多模光纤 单模光纤
    码间串扰 奈氏准则 香农公式
    flask 文件下载 文件服务器 请求参数 函数修饰符
  • 原文地址:https://www.cnblogs.com/zufezzt/p/5497207.html
Copyright © 2011-2022 走看看