uva 540 Team Queue(queue与STL其他容器的综合运用)

题目链接:here

思路还是很简单的,,用map[a][i]  表示编号为a 的人在i的队伍里面,然后用队列表示每个队伍;



#include
#include
#include
#include
#include
#include
using namespace std;
const int maxn = 1000+10;

int main(){
    int t;
    int x=1;
    //freopen("0.txt","r",stdin);
    while(~scanf("%d",&t)&&t)
    {
        printf("Scenario #%d\n",x++);
        map team;
        for(int i=1;i<=t;i++){
            int n;
            scanf("%d",&n);
            while(n--){
                int a;
                scanf("%d",&a);
                team[a]=i;
            }
        }
        queue q,q2[maxn];
        string s;
        while(cin>>s)
        {
            if(s[0]=='S') break;
            else if(s[0]=='E'){
                int a;
                scanf("%d",&a);
                int t=team[a];
                if(q2[t].empty()) q.push(t);
                q2[t].push(a);



            }else if(s[0]=='D'){
                int t=q.front();
                cout<


你可能感兴趣的:(算法竞赛入门经典,uva)