Cod sursa(job #1414583)

Utilizator popescu.octavianPopescu Octavian popescu.octavian Data 2 aprilie 2015 19:34:52
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <cstdio>
#define nmax 500001

using namespace std;

int n, a[nmax], dq[nmax], i, p, u, first, last, Max, k;

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",&a[i]);
    p=1; u=0;
    for(i=1;i<=n;i++)
    {
        if(p<=u&&a[i]<=a[dq[u]]) u--;
        dq[++u]=i;
        if(dq[p]==i-k) p++;
        if(i>=k&&a[dq[p]]>Max) Max=a[dq[p]], first=i-k+1, last=i;
    }
    printf("%d %d %d",first,last,Max);
    return 0;
}