最小值咋不对
查看原帖
最小值咋不对
777911
hansen121楼主2024/7/7 19:54

最小值咋不对```cpp #include <bits/stdc++.h> using namespace std; int a[2000001]; int b[2000001]; int p[2000001]; int mi[2000001]; int main() { int n,k,l=1,r=0; cin>>n>>k; for(int i=1;i<=n;i++) { cin>>a[i]; } for(int i=1;i<k;i++) { while(l<=r&&b[r]>=a[i]) { --r; } b[++r]=a[i]; p[r]=i; } for(int i=k;i<=n;i++) { while(l<=r&&b[r]>=a[i]) { --r; } b[++r]=a[i]; p[r]=i; while(p[r]<i-k+1) { ++l; } cout<<b[l]<<" "; } cout<<endl; l=1,r=0; for(int i=1;i<k;i++) { while(l<=r&&b[r]<=a[i]) { --r; } b[++r]=a[i]; p[r]=i; } for(int i=k;i<=n;i++) { while(l<=r&&b[r]<=a[i]) { --r; } b[++r]=a[i]; p[r]=i; while(p[r]<i-k+1) { ++l; } cout<<b[l]<<" "; } }

2024/7/7 19:54
加载中...