Cod sursa(job #1160216)

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

using namespace std;

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

struct ceva
{
    int val, pos;
}nr;

deque < ceva > deq;

int n, k, x;
int maxim = -30001, mBegin, mEnd;

void read()
{
    fin >> n >> k;
    for(int i = 1; i <= n; i++)
    {
        fin >> x;
        while(!deq.empty() && deq.back().val > x)
            deq.pop_back();

        if(!deq.empty() && i - deq.front().pos + 1 > k)
            deq.pop_front();

        nr.val = x;
        nr.pos = i;
        deq.push_back(nr);

        if(deq.front().val > maxim && i >= k)
        {
            maxim = deq.front().val;
            mBegin = i - k + 1;
            mEnd = i;
        }
    }
}

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