Cod sursa(job #3211199)

Utilizator MegaCoderMinoiu Teodor Mihai MegaCoder Data 8 martie 2024 18:42:10
Problema Secventa Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<fstream>
#include<deque>
std::ifstream fin("secventa.in");
std::ofstream fout("secventa.out");
std::deque<std::pair<int, int>>q;
void update(int elem, int pos)
{
    while(!q.empty() && elem<q.back().second)
        q.pop_back();
    q.push_back(std::make_pair(pos, elem));
}
int main()
{
    int dr, max;
    int n, k;
    fin>>n>>k;
    int val;
    for(int index=0; index<k; ++index)
    {
        fin>>val;
        update(val, index);
    }
    max=q.front().second;
    dr=k-1;
    for(int index=k; index<n; ++index)
    {
        if(index-q.front().first==k)
            q.pop_front();

        fin>>val;
        update(val, index);
        if(q.front().second>max)
        {
            max=q.front().second;
            dr=index;
        }
    }
    fout<<dr-k+2<<' '<<dr+1<<' '<<max;
    return 0;
}