题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=754
代码如下;
#include<stdio.h>
02.
#include<queue>
03.
using
namespace
std;
04.
int
main()
05.
{
06.
int
m,n;
07.
queue<
int
>q;
08.
priority_queue<
int
>Q;
09.
while
(
scanf
(
"%d%d"
,&m,&n)!=EOF)
10.
{
11.
while
(!q.empty())
12.
q.pop();
13.
while
(!Q.empty())
14.
Q.pop();
15.
int
num;
16.
for
(
int
i=1;i<=m;i++)
17.
{
18.
scanf
(
"%d"
,&num);
19.
q.push(num);
20.
Q.push(num);
21.
}
//数据输进去之后,系统进行从大到小的排序
22.
while
(1)
23.
{
24.
int
t=q.front();
25.
q.pop();
26.
if
(n==0)
27.
{
28.
if
(t==Q.top())
29.
{
30.
printf
(
"%d\n"
,m-q.size());
31.
break
;
32.
}
33.
else
34.
{
35.
q.push(t);
36.
n=q.size()-1;
37.
}
38.
39.
}
40.
else
41.
{
42.
n--;
43.
if
(t==Q.top())
44.
{
45.
Q.pop();
46.
}
47.
else
48.
{
49.
q.push(t);
50.
}
51.
}
52.
53.
}
54.
}
55.
return
0;
56.
}