Cod sursa(job #854686)

Utilizator blechereyalBlecher Eyal blechereyal Data 13 ianuarie 2013 20:51:18
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#define MAXN 5000001
#include <fstream>

using namespace std;
int K,N,A[MAXN],dq[MAXN];

ifstream f("secventa.in");
ofstream g("secventa.out");

void secv(){int p,u,i;
p=1;u=0;
int st=0,dr=0,max=-30333;


for (i=1;i<=N;i++)
    {
    while ((p<=u)&&(A[i]<=A[dq[u]])) u--;
    dq[++u]=i;
    if (dq[p]==i-K) p++;
    if ((i>=K)&&(dq[p]>max)) {
        max=A[dq[p]];
        st=dq[p];
        dr=dq[p]+K-1;
        }
    }
g<<st<<" "<<dr<<" "<<max;
}

int main()
{
    f>>N>>K;
    for (int i=1;i<=N;i++) f>>A[i];
    secv();


    return 0;
}