Pagini recente » Cod sursa (job #2075850) | Cod sursa (job #2257523) | Cod sursa (job #1925078) | Cod sursa (job #2968760) | Cod sursa (job #2394742)
#include <fstream>
#include <deque>
#define MAXN 500000
#define INF 40000
using namespace std;
ifstream cin( "secventa.in" );
ofstream cout( "secventa.out" );
int n, m;
int v[1+MAXN+1];
deque<int> dq;
inline void my_push_back( int p )
{
while( !dq.empty() && v[p]<v[dq.back()] )
dq.pop_back();
dq.push_back(p);
}
inline void my_pop_front( int p )
{
if( dq.front()==p )
dq.pop_front();
}
int main()
{
cin>>n>>m;
for( int i=1;i<m;i++ )
cin>>v[i], my_push_back(i);
int dr, maxim=-INF;
for( int i=m;i<=n;i++ )
{
cin>>v[i], my_push_back(i);
if( v[dq.front()]>maxim )
maxim=v[dq.front()], dr=i;
my_pop_front(i-m+1);
}
cout<<dr-m+1<<" "<<dr<<" "<<maxim;
return 0;
}