Pagini recente » Cod sursa (job #1426321) | Cod sursa (job #1426335) | Cod sursa (job #2284250) | Cod sursa (job #1801841) | Cod sursa (job #1801842)
#include <iostream>
#include <deque>
#include <cstdio>
using namespace std;
const int NMax = 5000005;
long long sum=0;
int N,K;
int A[NMax];
deque < int > Dq;
void Read()
{
scanf("%d%d", &N, &K);
for(int i=1; i<=N; ++i)
scanf("%d", &A[i]);
}
void Solve()
{
Dq.push_back(1);
int maxi=-30005, ind;
for(int i=2; i<=N; ++i)
{
if(Dq.front()==i-K )
Dq.pop_front();
while(!Dq.empty() && A[i]<=A[Dq.back()])
Dq.pop_back();
Dq.push_back(i);
if(i>=K)
{
int m=A[Dq.front()];
if(m>=maxi)
{maxi=m;
ind=Dq.front();
}
}
}
printf("%d %d %d",ind, ind+K-1, maxi);
}
int main()
{
freopen("secventa.in", "r", stdin);
freopen("secventa.out", "w", stdout);
Read();
Solve();
return 0;
}