题目描述:

打印队列 (Printer Queue,ACM/ICPC NWERC 2006,UVA12100)-LMLPHP

题目思路:

使用一个队列记录数字,一个优先队列记录优先级,如果相等即可打印;

 #include <iostream>
#include <queue>
using namespace std;
int main(int argc, char *argv[])
{
int t;
cin >> t;
while(t--)
{
int n,pos;
queue<int> q ;
priority_queue<int> pq ;
cin >> n >> pos ;
for(int i=;i<n;i++)
{
int a;
cin >> a;
q.push(a);
pq.push(a);
}
int t = ;
while(true)
{
if(q.front() == pq.top())
{
if(t==pos){cout<<n-q.size()+<<endl;break;}
else{
q.pop();
pq.pop();
t++;
}
}
else{
int temp = q.front();
q.pop();
q.push(temp);
if(t == pos){t=;pos=q.size()-;}
else t++ ; }
}
}
return ;
}
05-17 00:09