Cod sursa(job #1328965)

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

#define Nmax 500005

long long Maxx=-9999999;
int K, N;
int A[Nmax];
long long fr, bk;
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()];
            fr=i-K+1;
            bk=i;
        }
    }

    out<<fr<<' '<<bk<<' '<<Maxx;
    return 0;
}