UVA 540(p117)----Team Queue

来源:互联网 发布:java中如何处理高并发 编辑:程序博客网 时间:2024/06/08 16:53
#include<map>#include<cstdio>#include<queue>#include<iostream>#include<algorithm>using namespace std;const int maxn=1010;char cmd[50];int t,n,cas=0,x;map<int,int> team;queue<int> q,qq[maxn];void init(){    team.clear();    while(!q.empty()) q.pop();    for(int i=0; i<maxn; i++)        while(!qq[i].empty())            qq[i].pop();}int main(){    while(scanf("%d",&t)==1&&t)    {        init();        printf("Scenario #%d\n",++cas);        for(int i=0; i<t; i++)        {            scanf("%d",&n);            for(int j=0; j<n; j++)            {                scanf("%d",&x);                team[x]=i;            }        }        while(1)        {            scanf("%s",cmd);            if(cmd[0]=='S') break;            if(cmd[0]=='D')            {                int tmp=q.front();                int out=qq[tmp].front();                qq[tmp].pop();                if(qq[tmp].empty()) q.pop();                printf("%d\n",out);            }            else            {                scanf("%d",&x);                if(qq[team[x]].empty())                    q.push(team[x]);                qq[team[x]].push(x);            }        }        printf("\n");    }    return 0;}
题目地址:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=481
0 0