70分,TLE

P1440 求m区间内的最小值

djwj323 @ 2020-09-26 15:49:08

#include <iostream>
#include <cstdio>
using namespace std;
long long n,m;
long long x[2000003][2];
long long o,u=1,p,i,j;
int main()
{
    scanf("%lld%lld",&n,&m);
    for(i=1;i<=n;i++)
    {
        scanf("%lld",&p);
        if(i-x[u][1]>m)  u++;
        cout<<x[u][0]<<endl;
        while(o>=u&&x[o][0]>p)  o--;
        o++;
        x[o][0]=p;
        x[o][1]=i;
    }
    return 0;
}

by TinyMirror1 @ 2020-09-28 18:10:59

我怀疑cout太慢了


by 浔阳江头 @ 2020-10-03 11:27:27

用快读快写,我用cout只有80分,加了快读快写直接AC,最慢的一个点也只用了64ms,跑得和飞一样


|