Cod sursa(job #1597820)

Utilizator RaduToporanRadu Toporan RaduToporan Data 12 februarie 2016 12:57:32
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <cstdio>

int n,i,k,x[500005],d[500005],p,u,primul,ultimul,maximul=-2000000000;

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