1 条题解

  • 1
    @ 2024-8-4 11:52:43

    #include<bits/stdc++.h> using namespace std; const int maxn=2e6+10; int a[maxn]; int a1[maxn],a2[maxn]; dequeq1; dequeq2; int main(){ int n,m; scanf("%d %d",&n,&m); for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } for(int i=1;i<=n;i++){ while(!q1.empty()&&a[q1.back()]>a[i]) q1.pop_back(); while(!q2.empty()&&a[q2.back()]<a[i]) q2.pop_back(); q1.push_back(i); q2.push_back(i); if(i>=m){ while(q1.front()<i-m+1) q1.pop_front(); a1[i]=a[q1.front()]; while(q2.front()<i-m+1) q2.pop_front(); a2[i]=a[q2.front()]; } } for(int i=m;i<=n;i++) { printf("%d",a1[i]); cout<<" "; } printf("\n"); for(int i=m;i<=n;i++) { printf("%d",a2[i]); cout<<" "; }

    return 0;
    

    }

    信息

    ID
    2055
    时间
    1000ms
    内存
    500MiB
    难度
    4
    标签
    递交数
    26
    已通过
    16
    上传者