Cod sursa(job #585076)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 27 aprilie 2011 22:14:22
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <stdio.h>

int q[500001],v[500001],k,n;

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