540:Team Queue

Team Queue


本题有两个队列:每个团队有一个队列,而团队整体又形成一个队列,建两个queue即可。

#include<cstdio>
#include<map>
#include<queue>
using namespace std;
const int maxt = 1000 + 5;
int t,n;
char cmd[10];
int main(){
    int kase = 0;
    while(scanf("%d",&t) && t){
        queue<int>q1,q2[maxt];
        map<int,int>group;
        int member;
        for(int i = 0;i < t;i++){
            scanf("%d",&n);
            while(n--){
                scanf("%d",&member);
                group[member] = i;
            }
        }
        printf("Scenario #%d\n",++kase);
        while(scanf("%s",cmd) && cmd[0] != 'S'){
            if(cmd[0] = 'E'){
                scanf("%d",&membet);
                int t = group[x];
                if(q2[t].empty()) q1.push(t);
                q2[t].push(x);
            }
            else{
                int t = q1.front();
                printf("%d\n",q2[t].front());
                q2[t].pop();
                if(q2[t].empty()) q1.pop(); //看没人了才pop
            }
        }
        putchar('\n');
    }
    return 0;
}

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37754288/article/details/79968718
个人分类: STL 模拟 UVa
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

540:Team Queue

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭