Team Queue UVA 540 (团体队列)

╰+攻爆jí腚メ 2024-02-17 18:47 145阅读 0赞
  1. #include
  2. #include
  3. #include
  4. #include
  5. #include
  6. using namespace std;
  7. const int maxn=1010;
  8. int main(){
  9. int t;
  10. int count=0;
  11. while(scanf(“%d”,&t)==1 && t){
  12. mapmp;
  13. for(int i=1;i<=t;i++){
  14. int n;
  15. scanf(“%d”,&n);
  16. while(n—){
  17. int temp;
  18. scanf(“%d”,&temp);
  19. mp[temp]=i; //键表示队员号,值表示队员所在的队列
  20. }
  21. }
  22. printf(“Scenario #%d\n”,++count);
  23. queueq,q1[maxn]; //q表示整个队列(队列中存储队列号),q1[maxn]表示每个队列中的队员
  24. string s;
  25. while(cin>>s){
  26. if(s==”STOP”)break;
  27. if(s[0]==’D’){
  28. int temp=q.front();
  29. printf(“%d\n”,q1[temp].front());
  30. q1[temp].pop();
  31. if(q1[temp].empty())q.pop();
  32. }
  33. else if(s[0]==’E’){
  34. int temp;
  35. scanf(“%d”,&temp);
  36. if(q1[mp[temp]].empty())q.push(mp[temp]);
  37. q1[mp[temp]].push(temp);
  38. }
  39. }
  40. printf(“\n”);
  41. }
  42. return 0;
  43. }

发表评论

表情:
评论列表 (有 0 条评论,145人围观)

还没有评论,来说两句吧...

相关阅读

    相关 队列Queue

    队列是一种数据结构,它只允许在队列尾部(rear)加人一个元素,和从队列头部(front)移除一个元素。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称

    相关 Queue--队列

    队列(Queue)和栈不同,队列是只允许在一端插入,在另一端进行删除的线性表,所有的插入操作都在队尾进行,删除操作则在队头进行。入队和出队顺序一样。 由于数组在删除元素的时候