Cod sursa(job #1160181)

Utilizator hopingsteamMatraguna Mihai-Alexandru hopingsteam Data 30 martie 2014 12:38:07
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 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 maxmin = -30001, maxmin1, maxmin2;

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

int main()
{
    read();
    fout << maxmin1 << " " << maxmin2 << " " << maxmin;
    return 0;
}