栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 1948 Team Queue

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 1948 Team Queue

#include <stdio.h>#include <memory.h>#include <queue>#include <map>using namespace std;map<int, int> teamNo;map<int, int> teamOrder;map<int, int> teamCount;struct element{   int content;   int teamOrder;   int order;   bool operator<(const element& e) const   {      if(teamOrder > e.teamOrder)         return true;      else if(teamOrder == e.teamOrder && order > e.order)         return true;      else return false;   }   element(int c, int t, int o) : content(c), teamOrder(t), order(o) { }};priority_queue<element> q;void init(int teams){   teamNo.clear();   teamOrder.clear();   while( !q.empty() )  q.pop();   int elements = 0;   int content = 0;   for(int i = 0; i != teams; i++)   {      scanf("%d", &elements);      for(int j = 0; j != elements; j++)      {         scanf("%d", &content);         teamNo[content] = i;      }      teamCount[i] = 0;   }}void process(int teams, int scenario){   printf("Scenario #%dn", scenario);   char op[8];   int content;   int iOrder = -1;   int iTeamOrder = -1;   while(scanf("%s", op) && op[0] != 'S')   {      if(op[0] == 'E')      {         scanf("%d", &content);         iOrder++;         if(teamCount[ teamNo[content] ] == 0)         { iTeamOrder++; teamOrder[ teamNo[content] ] = iTeamOrder;         }         teamCount[ teamNo[content] ]++;         q.push( element(content, teamOrder[teamNo[content]], iOrder) );      }      else      {         printf("%dn", q.top().content);         teamCount[teamNo[q.top().content]]--;         q.pop();      }   }   putchar('n');}int main(){   int teams;   int scenario = 0;   while(scanf("%d", &teams) && teams != 0)   {      scenario++;      init(teams);      process(teams, scenario);   }}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/379174.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号