Pagini recente » Cod sursa (job #1162784) | Cod sursa (job #2356924) | Cod sursa (job #1083108) | Cod sursa (job #994919) | Cod sursa (job #370485)
Cod sursa(job #370485)
#include <cstdio>
//#include <deque>
int v[500000];
int s[500000];
int main(){
freopen("secventa.in","rt",stdin);
freopen("secventa.out","wt",stdout);
//std::deque<int> x;
int i,n,k;
int pos=15,max=-1000000;
scanf("%d%d",&n,&k);
int front=0,back=-1;
for(i=0;i<n;i++){
scanf("%d",&v[i]);
/*while(!x.empty()&&v[i]<x.back())x.pop_back();
x.push_back(v[i]);
*/
while(front<=back&&v[i]<s[back])back--;
s[back]=v[i];
++back;
/*if(i>=k-1){
if(v[i-k]==x.front())
x.pop_front();
if(x.front()>max){
pos=i;
max=x.front();
}
}*/
if(i>=k-1){
if(v[i-k]==s[front])
front++;
if(s[front]>max){
pos=i;
max=s[front];
}
}
}
printf("%d %d %d",pos+2-k,pos+1,max);
return 0;
}