您的位置:首页 > 产品设计 > UI/UE

算法竞赛入门经典 第二版 习题5-7 打印队列 Printer Queue uva12100

2017-03-01 20:56 471 查看
题目:https://vjudge.net/problem/UVA-12100

思路:用deque模拟比较方便,不会重载运算符的我只好写个函数判断优先级了。

代码:

#include <iostream>
#include <string>
#include <cstdio>
#include <iomanip>
#include <map>
#include <set>
#include <vector>
#include <deque>
#include <cstring>
#include <algorithm>
using namespace std;

deque<pair<int, int> > data;//priority, order number
int time;

bool isprior()
{
for(int i=1; i<data.size(); i++)
{
if(data[i].first>data[0].first)
{
return false;
}
}
return true;
}

int main()
{
int T;
cin >> T;
while(T--)
{
time = 0;
data.clear();
int n, num;
cin >> n >> num;
for(int i=0; i<n; i++)
{
int priority;
cin >> priority;
data.push_back(make_pair(priority, i));
}
while(1)
{
if(isprior())
{
if(data[0].second==num)
{
time++;

4000
break;
}
else
{
data.pop_front();
time++;
}
}
else
{
data.push_back(data[0]);
data.pop_front();
}
}
cout << time << endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐