Cod sursa(job #854604)

Utilizator RamaStanciu Mara Rama Data 13 ianuarie 2013 19:32:57
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <stdio.h>

using namespace std;

long long A[5000000],dq[5000000];

int main()
{
    long long  n,k,st=1,dr=0,i,max;
    FILE*f,*g;
    f=fopen("secventa.in","r");
    g=fopen("secventa.out","w");
    fscanf(f,"%lld%lld",&n,&k);

    for(i=1;i<=n;i++)
        fscanf(f,"%lld",&A[i]);
    max=A[1];
    for(i=1;i<=n;i++)
    {
        while(st<=dr && A[i]<=A[dq[dr]]) dr--;
        dq[++dr]=i;
        if(dq[st]==i-k) st++;
        if(i>=k && A[dq[st]]>max) max=A[dq[st]];
    }
//    freopen("secventa.txt","w",stdout);
    fprintf(g,"%lld %lld ",dq[st],dq[dr]);
    fprintf(g,"%lld",max);
    return 0;
}