ho33 @ 2023-03-19 10:41:59
用的是单调队列,我感觉单调队列挺快的了....
#include<bits/stdc++.h>
using namespace std;
int n,m;
int arr[40000010];
class Mqueue{
public:
deque<int>que;
void push(int val){
while(!que.empty()&&que.back()>val){
que.pop_back();
}
que.push_back(val);
}
void pop(int val){
if(!que.empty()&&que.front()== val){
que.pop_front();
}
}
int front(){
return que.front();
}
};
int main(){
cin>>n>>m;
Mqueue que;
vector<int>ans;
for(int i = 1;i <= n;i++){
cin>>arr[i];
}
cout<<'0'<<endl;
for(int i = 2;i <= n;i++){
if(i>m){
que.pop(arr[i-1-m]);
}
que.push(arr[i-1]);
ans.push_back(que.front());
}
for(int i = 0;i <ans.size();i++){
cout<<ans[i]<<endl;
}
}
by ho33 @ 2023-03-19 11:36:20
哦,改成scanf和printf就过了 此贴结