求调 50pts 5个TLE

P1440 求m区间内的最小值

liusizhe88 @ 2024-08-15 00:21:31

#include<bits/stdc++.h>
using namespace std;

struct Node{
    int val;
    int next;
};
int main(){
    int n,m,c=0,d,f=0;
    cin>>n>>m;
    Node node[n];
    int a[n-m+1];
    for(int i=0;i<n;i++){
        cin>>node[i].val;
        if(i>=1){
        node[i-1].next=node[i].val;
        }
    }
    cout<<0<<endl;
    d=node[0].val;
    int g=node[0].val;
    for(int i=0;i<m-1;i++){
        if(node[i].val<g){
            g=node[i].val;
        }
        cout<<g<<endl;
    }
    for(int i=0;i<n;i++){
        if(node[i].val!=NULL){
            c++;
        }
        if(node[i].val<d&&node[i].val!=NULL){
            d=node[i].val;
        }
        if(c==m){
            a[f]=d;
            node[f].val=NULL;
            i=f;
            c=0;
            d=node[f+1].val;
            f++;
        }   
    }
    for(int i=0;i<n-m;i++){
        cout<<a[i]<<endl;
    }
    return 0;
}

|