首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

(行列的应用5.3.2)POJ 2259 Team Queue(队列数组的使用)

2013-10-31 
(队列的应用5.3.2)POJ 2259 Team Queue(队列数组的使用)/* * POJ_2259.cpp * *Created on: 2013年10月30日

(队列的应用5.3.2)POJ 2259 Team Queue(队列数组的使用)

/* * POJ_2259.cpp * *  Created on: 2013年10月30日 *      Author: Administrator */#include <iostream>#include <cstdio>#include <queue>#include <cstring>#include <map>using namespace std;const int maxn = 1010;int main(){int n;bool visited[maxn];int counter = 1;while(scanf("%d",&n)!=EOF,n){int i;/** * que: 总队列,里面存的是子队列的编号 * q[i]: 第i个子队列,里面存的是元素值 */queue<int> q[maxn],que;map<int,int> team;for(i = 0 ; i < n ; ++i){int m;scanf("%d",&m);int t;while(m--){scanf("%d",&t);team[t] = i;}}memset(visited,false,sizeof(visited));printf("Scenario #%d\n",counter++);char str[25];while(scanf("%s",str)!=EOF){if(strcmp(str,"STOP") == 0){printf("\n");break;}if(strcmp(str,"ENQUEUE") == 0){int t;scanf("%d",&t);q[team[t]].push(t);if(visited[team[t]] == false){que.push(team[t]);visited[team[t]] = true;}}else if(strcmp(str,"DEQUEUE") == 0){printf("%d\n",q[que.front()].front());q[que.front()].pop();if(q[que.front()].empty()){visited[que.front()] = false;que.pop();}}}}return 0;}

热点排行