Cod sursa(job #547522)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 6 martie 2011 14:06:40
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <stdio.h>

int q[500001],p[500001],s[500001],l=1,r,i,ind,n,k,x,max;

int main()
{
    freopen("secventa.in","r",stdin);
    freopen("secventa.out","w",stdout);
    scanf("%d%d",&n,&k);
    for (i=1;i<=k;++i)
    {
        scanf("%d",&x);
        while ((x<q[r])&&(r>0)) --r;
        ++r;
        q[r]=x;
        p[r]=i;
    }
    max=q[1];ind=k;
    for (i=k+1;i<=n;++i)
    {
        scanf("%d",&x);
        while ((x<q[r])&&(r>=l)) --r;
        ++r;
        q[r]=x;
        p[r]=i;
        if (p[l]<=i-k) ++l;
        if (q[l]>max) {max=q[l];ind=i;}
    }
    printf("%d %d %d",ind-k+1,ind,max);
    return 0;
}