为什么2和后面几个点一直在RE?
查看原帖
为什么2和后面几个点一直在RE?
865793
better_Z楼主2023/6/29 21:31
#include<iostream>
#include<cmath>
#define maxn 100010
using namespace std;
int n,k;
int a[maxn],q[maxn];
void max(){
    int head=0,tail=0;
    for(int i=1;i<=n;i++){
        while(head<tail&&q[head]+k<=i)head++;
        while(head<tail&&a[q[tail-1]]<a[i])tail--;
        q[tail]=i;
        tail++;
        if(i>=k)cout<<a[q[head]]<<" ";
    }
}
void min(){
    int head=0,tail=0;
    for(int i=1;i<=n;i++){
        while(head<tail&&q[head]+k<=i)head++;
        while(head<tail&&a[q[tail-1]]>a[i])tail--;
        q[tail]=i;
        tail++;
        if(i>=k)cout<<a[q[head]]<<" ";
    }
}
int main(){
    cin>>n>>k;
    for(int i=1;i<=n;i++)cin>>a[i];
    min();
    cout<<endl;
    max();
    return 0;
}
2023/6/29 21:31
加载中...