c/c++语言开发共享团体队列 UVA540 Team Queue

题目描述 有t个团队的人正在排一个长队。每次新来一个人时,如果他有队友在排队,那么新人会插队到最后一个队友的身后。如果没有任何一个队友排队,则他会被排到长队的队尾。 输入每个团队中所有队员的编号,要求支持如下3中指令: ENQUEUE x:编号为x的人进入长队 DEQUEUE:长队的队首出队 STO …


题目描述

有t个团队的人正在排一个长队。每次新来一个人时,如果他有队友在排队,那么新人会插队到最后一个队友的身后。如果没有任何一个队友排队,则他会被排到长队的队尾。

输入每个团队中所有队员的编号,要求支持如下3中指令:

enqueue x:编号为x的人进入长队

dequeue:长队的队首出队

stop:停止模拟

对于每个dequeue指令,输出出队的人的编号

样例输入

2
3 101 102 103
3 201 202 203
enqueue 101
enqueue 201
enqueue
102
enqueue 202
enqueue 103
enqueue
203
dequeue
dequeue
dequeue
dequeue
dequeue
dequeue
stop
2
5
259001 259002 259003 259004 259005
6 260001 260002 260003 260004 260005
260006
enqueue 259001
enqueue 260001
enqueue 259002
enqueue
259003
enqueue 259004
enqueue 259005
dequeue
dequeue
enqueue
260002
enqueue
260003
dequeue
dequeue
dequeue
dequeue
stop
0

样例输出

scenario #1
101
102
103
201
202
203
scenario #2
259001
259002
259003
259004
259005
260001

#define local #include<iostream> #include<cstdio> #include<map> #include<queue> #include<string>  using namespace std;  const int maxn=100;  int main(){     #ifdef local     freopen("data.in","r",stdin);     freopen("data.out","w",stdout);     #endif      //!1.记录所有人的团队编号,从0开始     int t;//共有t个团队     int kase=0;     while(scanf("%d",&t) == 1 && t>0){         map<int,int> team;         cout<<"scenario #"<<++kase<<endl;         for(int i=0;i<t;i++){//第i个团队             //有n个人             int n;             cin>>n;             int code;             while(n--){scanf("%d",&code);team[code]=i;}         }          //!2.模拟         queue<int> q,q2[maxn];         while(1){             int x;             string cmd;             cin>>cmd;             if(cmd[0] == 's')break;             else if(cmd[0] == 'd'){                 x=q.front();                 cout<<q2[x].front()<<endl;                 q2[x].pop();                 if(q2[x].empty())q.pop();             }             else if(cmd[0] == 'e'){                 cin>>x;                 int t=team[x];                 if(q2[t].empty())q.push(t);                 q2[t].push(x);             }         }         cout<<endl;     }     return 0; } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/604963.html

(0)
上一篇 2021年5月13日
下一篇 2021年5月13日

精彩推荐