Cod sursa(job #1951694)

Utilizator DysKodeTurturica Razvan DysKode Data 3 aprilie 2017 19:08:54
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>

using namespace std;

#define f first
#define s second

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

deque< int > dq;
int v[500010],i,j,n,m,k,ans,a;

int main()
{
    fin>>n>>k;
    for( i = 1 ; i <= n ; i++ )
        fin>>v[ i ];
    for( i = 1 ; i < k ; i++ )
    {
        while( dq.size() && v[ i ] <= v[ dq.front() ] )
            dq.pop_front();
        dq.push_front( i );
    }
    for( i = k ; i <= n ; i++ )
    {
        while( dq.size() && v[ i ] <= v[ dq.front() ] )
            dq.pop_front();
        dq.push_front( i );
        if( v[ dq.back() ] > ans )
        {
            ans = v[ dq.back() ];
            a = i;
        }
        if( dq.back() == i - k + 1 )
            dq.pop_back();
    }
    fout<<a-k+1<<' '<<a<<' '<<ans;

return 0;
}