Cod sursa(job #585086)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 27 aprilie 2011 22:19:55
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include <cstdio>

using namespace std;

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;
        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;
}