Cod sursa(job #1760865)

Utilizator CiurezAndreiCiurez Marius-Andrei CiurezAndrei Data 21 septembrie 2016 13:19:44
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <bits/stdc++.h>

using namespace std;

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

int solution, first, last, A[100010], N, K;
deque<int>deq;

int main()
{
    fin >> N >> K;

    for(int i = 1; i <= N; i ++)
    {
        fin >> A[i];
    }

    for(int i = 1; i <= N; i ++)
    {
        while( !deq.empty() && A[i] >= A[deq.back()] && deq.size() >= K )
        {
            deq.pop_back();
        }

        deq.push_front(i);

        if(deq.front() == i - K)
        {
            deq.pop_front();
        }

        if(i >= K && deq.size() >= K)
        {
            if(A[ deq.back() ] > solution)
            {
                solution = A[ deq.back() ];
                last = deq.front();
                first = deq.back();
            }
        }
    }

    fout << first << " " << last << " " << solution;

    return 0;
}