Pagini recente » Cod sursa (job #1443796) | Cod sursa (job #1962705) | Cod sursa (job #1964175) | Cod sursa (job #906937) | Cod sursa (job #1214870)
#include <iostream>
#include <cstdio>
#include <deque>
using namespace std;
struct dequeElem{
long v;
long pos;
dequeElem operator()(long vl,long posl){
v = vl; pos = posl;
return *this;
}
}elem;
long n,i,k,maxi,maxj;
long maxim=-30005,x;
deque<dequeElem> dq;
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%ld %ld\n",&n,&k);
for(i=1;i<=n;i++) {
scanf("%ld",&x);
if(!dq.empty())
while(dq.back().v > x){
dq.pop_back();
if(dq.empty()) break;
}
dq.push_back(elem(x,i));
while(dq.front().pos <= i-k) dq.pop_front();
elem = dq.front();
if(maxim < elem.v){
maxim = elem.v;
maxj = i;
maxi = elem.pos;
}
}
printf("%ld %ld %ld \n",maxi,maxj,maxim);
return 0;
}