Cod sursa(job #1997989)

Utilizator PopeangaMihneaPopeanga Mihnea- Stefan PopeangaMihnea Data 6 iulie 2017 00:45:33
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <climits>

using namespace std;

int x[500001], Deque[500001];
int n, k, i, Max, Front, Back, start, stop;

int main()
{
    ifstream fin("secventa.in");
    ofstream fout("secventa.out");

    fin>>n>>k;
    for(i=1; i<=n; ++i) fin>>x[i];

    Max=INT_MIN;
    Front=1; Back=0;
    for(i=1; i<=n; ++i)
    {
        while(Front<=Back && x[i]<=x[Deque[Back]]) --Back;
        Deque[++Back]=i;
        if(Deque[Front]==i-k) ++Front;
        if(i>=k)
        {
            if(x[Deque[Front]]>Max)
            {
                start=i-k+1;
                stop=i;
                Max=x[Deque[Front]];
            }
        }
    }
    fout<<start<<" "<<stop<<" "<<Max<<"\n";
    return 0;
}