Cod sursa(job #1160192)

Utilizator hopingsteamMatraguna Mihai-Alexandru hopingsteam Data 30 martie 2014 12:45:43
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include    <iostream>
#include    <fstream>
#include    <deque>

using namespace std;

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

deque < int > deq;

int n, k, v[500001];
int maxim = -30001, mBegin, mEnd;

void read()
{
    fin >> n >> k;
    for(int i = 1; i <= n; i++)
    {
        fin >> v[i];
        while(!deq.empty() && v[deq.front()] > v[i])
            deq.pop_back();
        if(!deq.empty() && i - deq.front() + 1 > k)
            deq.pop_front();
        deq.push_back(i);
        if(v[deq.front()] > maxim && i >= k)
        {
            maxim = v[deq.front()];
            mBegin = i - k + 1;
            mEnd = i;
        }
    }
}

int main()
{
    read();
    fout << mBegin << " " << mEnd << " " << maxim;
    return 0;
}