Cod sursa(job #1328988)

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

#define Nmax 500005

long long MAX=-9999999;
int K, N;
int A[Nmax];
int fr, l;
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++)
    {
        while(!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()]>MAX)
        {
            MAX=A[D.front()];
            l=i;
            fr=i-K+1;
        }
    }

    out<<fr<<' '<<l<<' '<<MAX;
    return 0;
}