Cod sursa(job #1510028)

Utilizator SlevySlevoaca Stefan-Gabriel Slevy Data 24 octombrie 2015 14:59:47
Problema Secventa Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>
#define NMAX 500001

using namespace std;

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

deque<int> d;
int n,k;
int poz;
int a[NMAX];
int minn = - 30001;

int main()
{
    in>>n>>k;
    for(int i=1;i<=n;i++)
        in>>a[i];
    for(int i=1;i<=n;i++)
    {
        while(!d.empty() && i-d.front()+1 >k)
            d.pop_front();
        while(!d.empty() && a[d.back()]>a[i])
            d.pop_back();
        d.push_back(i);
        if(i>=k && a[d.front()]>minn)
        {
            minn = a[d.front()];
            poz = i;
        }
    }
    out<<poz-k+1<<" "<<poz<<" "<<minn<<'\n';
    out.close();
    return 0;
}