Cod sursa(job #726121)

Utilizator ioalexno1Alexandru Bunget ioalexno1 Data 27 martie 2012 00:37:25
Problema Secventa Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <cstdio>
#include <cstring>
#include <cstdlib>
#define N 500005
using namespace std;
int a[N],deque[N],n,k;
char sir[N*7],*p;
int main()
{ int poz,max,li,lf,i;
freopen("secventa.in","r",stdin); scanf("%d %d\n",&n,&k);
gets(sir); p=strtok(sir," ");
poz=0; max=-N;
li=1; lf=0; i=0;
while(p)
    {
    a[++i]=strtol(p,NULL,10);
    while(li<=lf&&a[i]<=a[deque[lf]])--lf;
    deque[++lf]=i;
    if(deque[li]==i-k)++li;
    if(i>=k&&a[deque[li]]>max)
                {
                max=a[deque[li]];
                poz=i-k+1;
                }
    p=strtok(NULL," ");
    }
fclose(stdin);
freopen("secventa.out","w",stdout); printf("%d %d %d",poz,poz+k-1,max);
return 0;
}