zoukankan      html  css  js  c++  java
  • UVa540 Team Queue


    // 题意:有t个团队的人在排队。每次来了一个新人之后,如果他有队友在排队,那么这个新人会插队到队友的身后。
    // 要求支持三种指令:ENQUEUE x; DEQUEUE(队首出队); STOP。模拟这个过程,输出出队顺序

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<string>
    #include<algorithm>
    #include<queue>
    #include<map>
    using namespace std;
    
    const int maxt = 1000 + 10;
    
    int main()
    {
        int t;
        int count=0;
        while(cin>>t && t)
        {
            count++;
            cout<<"Scenario #"<<count<<endl;
    
            map<int, int> team;
            for(int i=0;i<t;i++)
            {
                int tsize;
                cin>>tsize;
                for(int j=0;j<tsize;j++)
                {
                    int element;
                    cin>>element;
                    team[element]=i;
                }
            }
    
            queue<int> q,  q2[maxt];
            string cmd;
            while(cin>>cmd && cmd!="STOP")
            {
                if(cmd=="ENQUEUE")
                {
                    int element;
                    cin>>element;
                    int t=team[element];
                    if(q2[t].empty())
                        q.push(t);
    
                    q2[t].push(element);
                }
                else//DEQUEUE
                {
                    int t=q.front();
                    cout<<q2[t].front()<<endl; q2[t].pop();
                    if(q2[t].empty())
                        q.pop();
                }
            }
            cout<<endl;
        }
    
        return 0;
    }
  • 相关阅读:
    java基础英语---第十九天
    java基础英语---第十六天
    java基础英语---第十七天
    java基础英语---第十四天
    java基础英语---第十五天
    java基础英语---第十三天
    设计模式
    设计模式
    设计模式
    设计模式
  • 原文地址:https://www.cnblogs.com/cute/p/3622396.html
Copyright © 2011-2022 走看看