UVA 540 Team Queue
阿新 • • 發佈:2019-02-07
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