TLE.......求救

P1440 求m区间内的最小值

DrivenHank @ 2017-09-22 13:34:51

#include <bits/stdc++.h>
using namespace std;
#define MAXNUM 0x7fffffff;
int n,m;
int a[2000100];
int main()
{
    int i,j;
    int fid,tap=0;
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++)
      scanf("%d",&a[i]);
    printf("%d\n",0);
    for(i=2;i<=n;i++)
    {  fid=MAXNUM;
          if(tap>=i-m&&i-m>=1)
          {  if(a[tap]>a[i-1])
             {  printf("%d\n",a[i-1]);
                tap=i-1;
             }
             else
               printf("%d\n",a[tap]);
             continue;
          }
          if(i<=m)
          {  for(j=1;j<i;j++)
             {  if(a[j]<fid)
                {  fid=a[j];
                   tap=j;
                }
             }
          }
          if(i>m)
          {  for(j=i-m;j<i;j++)
             {  if(a[j]<fid)
                {  fid=a[j];
                   tap=j;
                }
             }
          }
          printf("%d\n",fid);
    }
    return 0;
}

|