- 个人建议:不要用vector,~~贼慢~~。。。
- 因本蒟蒻不常用vector,so sorry.
by Sunlight9 @ 2019-04-14 02:03:31
@[sunxiaofan](/space/show?uid=121646)
这是我的一种方法
```cpp
#include<bits/stdc++.h>
using namespace std;
int n,m;
int num1[1000001],num2[1000001],a[1000001];
int min()
{
int l=1,r=0;
for(int i=1;i<=n;i++)
{
while(l<=r&&num1[l]+m<=i)
l++;
while(l<=r&&a[i]<a[num1[r]])
r--;
num1[++r]=i;
if(i>=m)
cout<<a[num1[l]]<<" ";
}
cout<<endl;
}
int max()
{
int l=1,r=0;
for(int i=1;i<=n;i++)
{
while(l<=r&&num2[l]+m<=i)
l++;
while(l<=r&&a[i]>a[num2[r]])
r--;
num2[++r]=i;
if(i>=m)
cout<<a[num2[l]]<<" ";
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
min();
max();
return 0;
}
```
by DARKSTALKING @ 2019-04-14 06:30:18
@[DARKSTALKING](/space/show?uid=121589)
# thank you
by sunxiaofan @ 2019-04-14 08:48:23