Pagini recente » Cod sursa (job #3318978) | Cod sursa (job #251105) | Cod sursa (job #2856306) | Cod sursa (job #737990) | Cod sursa (job #3323041)
/*
_____ _____ _______
/\ \ /\ \ /::\ \
/::\____\ /::\ \ /::::\ \
/:::/ / /::::\ \ /::::::\ \
/:::/ / /::::::\ \ /::::::::\ \
/:::/ / /:::/\:::\ \ /:::/~~\:::\ \
/:::/ / /:::/__\:::\ \ /:::/ \:::\ \
/:::/ / /::::\ \:::\ \ /:::/ / \:::\ \
/:::/ / _____ /::::::\ \:::\ \ /:::/____/ \:::\____\
/:::/____/ /\ \ /:::/\:::\ \:::\ \ ::: | |:::| |
|:::| / /::\____\ /:::/ \:::\ \:::\____\ |:::|____| |:::| |
|:::|____\ /:::/ / \::/ \:::\ /:::/ / \:::\ \ /:::/ /
\:::\ \ /:::/ / \/____/ \:::\/:::/ / \:::\ \ /:::/ /
\:::\ \ /:::/ / \::::::/ / \:::\ /:::/ /
\:::\ /:::/ / \::::/ / \:::\__/:::/ /
\:::\__/:::/ / /:::/ / \::::::::/ /
\::::::::/ / /:::/ / \::::::/ /
\::::::/ / /:::/ / \::::/ /
\::::/ / /:::/ / \::/____/
\::/____/ \::/ / ~~
~~ \/____/
*/
#include <bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define ins(x) insert(x)
#define mp(x,y) make_pair(x,y)
#define pb(x) push_back(x)
#define fast_ios ios_base::sync_with_stdio(0),cin.tie(nullptr),cout.tie(nullptr);
#define all(v) (v).begin() , (v).end()
using namespace std;
ifstream fin ( "secventa.in" ) ;
ofstream fout ( "secventa.out" ) ;
int nxt()
{
int x;
fin >> x ;
return x;
}
void close_files()
{
fin.close();
fout.close();
}
int v[500005];
signed main()
{
fast_ios
int n , m ;
fin >> n >> m ;
for ( int i = 1 ; i <= n ; ++ i )
fin >> v[i];
deque<int>dq;
for ( int i = 1 ; i <= m ; ++ i )
{
while ( !dq.empty() && v[dq.back()] > v[i] )
dq.pop_back();
dq.push_back(i);
}
int l = 1 , r = m ;
int max1 = v[dq.front()] ;
for ( int i = m+1 ; i <= n ; ++ i )
{
if ( dq.front() == i - m )
dq.pop_front();
while ( !dq.empty() && v[dq.back()] > v[i] )
dq.pop_back();
dq.push_back(i);
if ( max1 < v[dq.front()] )
{
l = i - m + 1 ;
r = i ;
max1 = v[dq.front()];
}
}
fout << l << ' ' << r << ' ' << max1 ;
close_files();
return 0;
}