Cod sursa(job #855704)

Utilizator RamaStanciu Mara Rama Data 15 ianuarie 2013 15:25:35
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <stdio.h>

using namespace std;

int A[5000001],dq[5000001];

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

    for(i=1;i<=n;i++)
        fscanf(f,"%ld",&A[i]);
    max=-30010;
    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]]; t=i; t2=t+1-k;}
    }
//    freopen("secventa.txt","w",stdout);
    fprintf(g,"%d %d ",t2,t);
    fprintf(g,"%d",max);
    return 0;
}