Cod sursa(job #2923457)

Utilizator andrei_marciucMarciuc Andrei andrei_marciuc Data 14 septembrie 2022 10:48:20
Problema Secventa Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
#include <deque>
using namespace std;

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

int v[ 500003 ];
deque<int> q;
int n, k;

int main()
{
    cin >> n >> k;
    for( int i = 0; i < k; i++ ) {
        cin >> v[ i ];
        while( !q.empty() && v[ q.back() ] > v[ i ] )
            q.pop_back();
        q.push_back( i );
    }

    int maxx = v[ q.front() ];
    int end = k;
      ///  printf( "%d ", v[ q.front() ] );
    for( int i = k; i < n; i++ ) {
        cin >> v[ i ];
        if( q.front() <= i - k )
            q.pop_front();
        while( !q.empty() && v[ q.back() ] > v[ i ] )
            q.pop_back();
        q.push_back( i );
       /// printf( "%d ", v[ q.front() ] );
        if( maxx < v[ q.front() ] ) {
            maxx = v[ q.front() ];
            end = i + 1;
        }
    }

    cout << end - k + 1 << ' ' << end << ' ' << maxx << '\n';
    return 0;
}