Cod sursa(job #1714942)

Utilizator TibiraducanuTiberiu Raducanu Tibiraducanu Data 9 iunie 2016 19:34:20
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <cstdio>
#include <deque>

using namespace std;

deque <int> q;

int v[500005];

int main()
{
    freopen("secventa.in","r",stdin);
    freopen("secventa.out","w",stdout);

    int n,k,i,maxx=0,sf;

    scanf("%d%d",&n,&k);

    for(i=1;i<=n;i++)
    {
        scanf("%d",&v[i]);

        while(!q.empty())
        {
            if(v[q.back()] >= v[i] ) q.pop_back();
            else break;
        }
        q.push_back(i);

        while(q.front() < i-k+1) q.pop_front();

        if(i>=k and v[q.front()]>maxx)
        {
            maxx=v[q.front()];
            sf=i;
        }
    }

    printf("%d %d %d\n",sf-k+1,sf,maxx);

    return 0;
}