Cod sursa(job #2380949)

Utilizator Andrei-27Arhire Andrei Andrei-27 Data 15 martie 2019 18:11:51
Problema Secventa Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>
using namespace std ;
ifstream in ("secventa.in") ;
ofstream out ("secventa.out") ;
deque < int > q ;
int v [ 500005 ] ,n , k , i , best = - ( 1 << 30 ) , X , Y ;
int main () {

    in >> n >> k ;
    for ( i = 1 ; i <= n ; ++ i )   {
        in >> v [ i ] ;
        while ( !q.empty() && v [ q.back() ] >= v [ i ] )   q.pop_back() ;
        q.push_back( i ) ;
        if ( i - q.front() + 1 > k )    q.pop_front() ;
        if ( !q.empty() && v[ q.front() ] > best && q.back() >= k  )   {

            best = v [ q.front() ] ;
            X = q.back() - k + 1 ;
            Y = q.back() ;
        }
    }
    out << X << ' ' << Y << ' ' << best ;
}