UVA 540 小团体队列

来源:互联网 发布:帝国cms 模型 编辑:程序博客网 时间:2024/06/10 07:29

这道题很有意思,一开始又想复杂了

#include <iostream>#include <sstream>#include <cstdio>#include <cstring>#include <cmath>#include <string>#include <vector>#include <set>#include <cctype>#include <algorithm>#include <cmath>#include <deque>#include <queue>#include <map>#include <stack>#include <list>#include <iomanip>using namespace std;///#define INF 0xffffff7#define maxn 10086///int BelongTeam[1000000];  //Elements are integers in the range 0 - 999999list<int> lists;list<int>::iterator pTeams[1200];//最多1000个Teamint main(){///int i, j;int teams;int cases = 1;while (cin >> teams && teams != 0){lists.clear();int nums(0);cout << "Scenario #" << cases << endl;for (i = 0; i < teams; i++){pTeams[i] = lists.end();int nums(0);cin >> nums;for (j = 0; j < nums; j++){int tempInput;cin >> tempInput;BelongTeam[tempInput] = i;}}string line;while (cin >> line && line != "STOP"){if (line == "ENQUEUE"){int tempInput;cin >> tempInput;if (pTeams[BelongTeam[tempInput]] != lists.end()){++pTeams[BelongTeam[tempInput]];pTeams[BelongTeam[tempInput]] = lists.insert(pTeams[BelongTeam[tempInput]], tempInput);}elsepTeams[BelongTeam[tempInput]] = lists.insert(pTeams[BelongTeam[tempInput]], tempInput);}else if (line == "DEQUEUE"){int top = lists.front();if (pTeams[BelongTeam[top]] == lists.begin()) //如果某一个Team元素弹完了,尾部指针要放到链表最后保证正确{pTeams[BelongTeam[top]] = lists.end();}lists.pop_front();cout << top << endl;}}cout << endl;cases++;}    ///    return 0;}


 

参考了http://www.cppblog.com/wuxu/archive/2011/11/24/160906.html

感觉这个方法很不错

迭代器指针数组的定义,链表的插入方式

 

原创粉丝点击