Pagini recente » Cod sursa (job #2021541) | Cod sursa (job #2473845) | Cod sursa (job #2069044) | Cod sursa (job #1746585) | Cod sursa (job #404879)
Cod sursa(job #404879)
#include <cstdio>
#include <deque>
using namespace std;
const int NMax=500002;
const int MaxMax=-1000000000;
deque <int> D;
int N,K,v[NMax];
long long Max=MaxMax,inceput,sfarsit;
int main(){
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%d%d",&N,&K);
int i;
for(i=1;i<=N;++i){
scanf("%d",v+i);
}
for(i=1;i<K;++i){
for(;!D.empty() && v[D.back()]>=v[i];D.pop_back()){}
D.push_back(i);
}
for(;i<=N;++i){
for(;!D.empty() && v[D.back()]>=v[i];D.pop_back()){}
D.push_back(i);
if(D.front()<=i-K){
D.pop_front();
}
if(v[D.front()]>=Max){
Max=v[D.front()];
inceput=i-K+1;
sfarsit=K;
}
}
printf("%lld %lld %lld",inceput,sfarsit+inceput-1,Max);
return 0;
}