这道题用集合也能做,真的水!
#include<bits/stdc++.h>
using namespace std;
const int maxn=2000005;
int n,k,a[maxn];
multiset<int> s;
int read(){
int ret=0,f=1;char ch=getchar();
while (!isdigit(ch)) {if (ch=='-')f=-f;ch=getchar();}
while (isdigit(ch)) ret=(ret<<3)+(ret<<1)+(ch&15),ch=getchar();
return ret*f;
}
int main(){
n=read(),k=read();
for(int i=1;i<=n;i++){
a[i]=read();
s.insert(a[i]);
if(i>=k)printf("%d\n",*s.rbegin()),s.erase(s.find(a[i-k+1]));
}
}