1 条题解

  • 0
    @ 2025-10-7 14:34:11
    #include<bits/stdc++.h>
    using namespace std;
    void read(int &h){
        char o;
        int x=0,y=1;
        o=getchar_unlocked();
        while(!(o<='9'&&o>='0')){
            if(o=='-'){
                y=-1;
            }
            o=getchar_unlocked();
        }
        while(o<='9'&&o>='0'){
            x*=10;
            x+=o-'0';
            o=getchar_unlocked();
        }
        h=x*y;
        return ;
    }
    const int N=1e6+10;
    int a[N],q[N];
    int n,k,l,r;
    int main(){
        ios::sync_with_stdio(0);cin.tie(nullptr);cout.tie(nullptr);
        read(n);read(k);
        for(int i=1;i<=n;i++){
            read(a[i]);
        }
        for(int i=1;i<=n;i++){
            while(l<r&&q[l]+k<=i){
                l++;
            }
            while(l<r&&a[q[r-1]]<a[i]){
                r--;
            }
            q[r]=i;
            r++;
            if(i>=k){
                cout<<a[q[l]]<<"\n";
            }
        }
        return 0;
    }
    
    
    • 1

    信息

    ID
    6082
    时间
    1000ms
    内存
    125MiB
    难度
    5
    标签
    递交数
    10
    已通过
    10
    上传者