Cod sursa(job #948175)

Utilizator Ionut228Ionut Calofir Ionut228 Data 9 mai 2013 16:46:08
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>
#include <deque>

using namespace std;

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

int N, K;
int poz, baza;
int V[500002];
deque<int> D;

int main()
{
    fin >> N >> K;
    for (int i = 1; i <= N; ++i)
        fin >> V[i];

    baza = -30001;
    for (int i = 1; i <= N; ++i)
    {
        while (!D.empty() && V[i] <= V[D.back()])
            D.pop_back();
        D.push_back(i);
        if (D.front() == i - K)
            D.pop_front();
        if (i >= K)
        {
            if (V[D.front()] > baza)
            {
                baza = V[D.front()];
                poz = i;
            }
        }
    }

    fout << poz - K + 1 << " " << poz << " " << baza;

    fin.close();
    fout.close();
}