Pagini recente » Cod sursa (job #712131) | Cod sursa (job #471011) | Cod sursa (job #1600832) | Cod sursa (job #534760) | Cod sursa (job #2380958)
#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 , nr , cnt ;
char s [ 500005 ] ;
bool capat ( int i , int j )
{
return s [ i ] == s [ j ] && s [ i ] == NULL ;
}
int main () {
in >> n >> k ;
in.get() ;
in.getline( s , 500005 ) ;
for ( i = 0 ; s [ i ] ; ++ i ) {
cnt ++ ;
nr = 0 ;
while ( s [ i ] && s [ i ] != ' ' ) {
if ( s [ i ] == '-' )
{
nr = - ( s [ i + 1 ] - '0' ) ;
i +=2 ;
}
else
nr = nr * 10 + s [ i ] - '0' , i ++ ;
}
v [ cnt ] = nr ;
while ( !q.empty() && v [ q.back() ] >= v [ cnt ] ) q.pop_back() ;
q.push_back( cnt ) ;
if ( cnt - 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 ;
}