【习题 5-7 UVA - 12100】Printer Queue
【链接】 我是链接,点我呀:)
【题意】
【题解】
用队列和multiset就能完成模拟【代码】
#include <bits/stdc++.h>
using namespace std;
int n, m;
queue <pair<int,int> > dl;
multiset <int,greater<int> > mset;
int main()
{
//freopen("F:\\rush.txt", "r", stdin);
int T;
scanf("%d", &T);
while (T--)
{
mset.clear();
while (!dl.empty()) dl.pop();
scanf("%d%d", &n, &m);
for (int i = 0; i < n; i++)
{
int x;
scanf("%d", &x);
dl.push(make_pair(x,i));
mset.insert(x);
}
int t = 0;
for (int i = 0;i < n;i++)
{
while (dl.front().first != (*mset.begin()) )
{
dl.push(dl.front());
dl.pop();
}
mset.erase(mset.begin());
t++;
if (dl.front().second == m)
{
printf("%d\n", t);
break;
}
dl.pop();
}
}
return 0;
}