Cod sursa(job #2396720)

Utilizator butnaru_vlad2003Butnaru Vlad butnaru_vlad2003 Data 3 aprilie 2019 19:27:18
Problema Secventa Scor 80
Compilator cpp-64 Status done
Runda excelenta-tema4 Marime 0.79 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in ("secventa.in");
ofstream out ("secventa.out");
int v[500001];
int main()
{
    deque<int> d;
    int n,k,max1=INT_MIN,poz1,poz2,maxin;
    in>>n>>k;
    for (int i=1;i<=n;++i)
        in>>v[i];
    for (int i=1;i<=n;++i)
    {
        int p=v[i];
        while (d.empty()==0 && v[d.back()]>p)
            d.pop_back();
        if (i-k==d.front() && !d.empty())
            d.pop_front();
        d.push_back(i);
        if (i>=k)
        {
                maxin=max1;
                max1=max(max1,v[(d.front())]);
                if (max1>maxin)
                {
                    poz1=i;
                    poz2=i-k+1;
                }
        }
    }
    out<<poz2<<' '<<poz1<<' '<<max1;
    return 0;
}