Cod sursa(job #1328954)

Utilizator andreismara97Smarandoiu Andrei andreismara97 Data 28 ianuarie 2015 21:47:59
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<fstream>
#include<deque>
using namespace std;
ifstream in("secventa.in");
ofstream out("secventa.out");

#define Nmax 500005

long long Maxx=-999999999;
int K, N, A[Nmax], start=0, finish=Nmax;
deque <int> D;

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

    for(int i=1; i<=N; i++)
    {
        if( !D.empty() && A[i] <= A[ D.back() ])
            D.pop_back();
        D.push_back(i);

        if(D.front() == i-K)
            D.pop_front();

        if( i>=K && A[ D.front() ] > Maxx)
        {
            Maxx=A[D.front()];
            start=i-K+1;
            finish=i;
        }
    }

    out<<start<<' '<<finish<<' '<<Maxx;
    return 0;
}