1. 程式人生 > >UVA 540 Team Queue

UVA 540 Team Queue

har sin i++ class () div empty color front

 1 #include "cstdio"
 2 #include "queue"
 3 #include "map"
 4 using namespace std;
 5 int main()
 6 {
 7     int t,kase=0;//t團隊數目
 8     while (scanf("%d",&t)==1&&t)
 9     {
10         printf("Scenario #%d\n", ++kase);
11         map<int, int> team;//記錄所有人團隊編號
12         //<元素x,團隊編號>
13 //team[x]為元素x所在團隊的編號 14 for (int i = 0; i < t; i++) 15 { 16 int n;//每個團隊的元素個數 17 scanf("%d", &n); 18 while (n--) 19 { 20 int x; 21 scanf("%d", &x); 22 team[x] = i; 23 }
24 } 25 queue<int> q, q2[1010]; 26 while (true) 27 { 28 char cmd[10]; 29 scanf("%s", cmd); 30 if (cmd[0] == S)//STOP 31 break; 32 else if (cmd[0] == D)//隊首出隊 33 { 34 int t = q.front();
35 printf("%d\n", q2[t].front()); 36 q2[t].pop(); 37 if (q2[t].empty()) 38 q.pop();//團隊t全部出隊 39 } 40 else if (cmd[0] == E)//入隊 41 { 42 int x; 43 scanf("%d", &x); 44 int t = team[x]; 45 if (q2[t].empty())//為空加入q 46 q.push(t); 47 q2[t].push(x); 48 } 49 } 50 printf("\n"); 51 } 52 return 0; 53 }

UVA 540 Team Queue