Cod sursa(job #1050321)

Utilizator ShaDoWsiD100Rzv Rzv ShaDoWsiD100 Data 8 decembrie 2013 14:49:46
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <stdio.h>
using namespace std;
FILE *f=fopen("secventa.in","r"),*g=fopen("secventa.out","w");
int n,v[500001],deque[500001],i,front,back,k,Max=-999999,start,finish;
int main()
{
    fscanf(f,"%d%d",&n,&k);
    for(i=1;i<=n;i++)
        fscanf(f,"%d",&v[i]);
    front=1;
    back=0;
    for(i=1;i<=n;i++)
    {
        while(front<=back && v[i]<=v[deque[back]])
            back--;
        deque[++back]=i;
        if(deque[front]==i-k)
            front++;
        if(v[deque[front]]>Max && i>=k){
            Max=v[deque[front]];
            start=i-k+1;
            finish=i;
        }
    }
    fprintf(g,"%d %d %d",start,finish,Max);
    return 0;
}