Pagini recente » Cod sursa (job #184976) | Istoria paginii utilizator/ris99 | Statistici Pady Eu (andrei00001111) | Cod sursa (job #124766) | Cod sursa (job #744543)
Cod sursa(job #744543)
#include <cassert>
#include <cstdio>
#include <deque>
using namespace std;
const int nmax=500000, inf_n=-(1<<30);
int v[nmax+1];
deque <int> d;
int main(){
int n, k, sol, sol_pos;
assert(freopen("secventa.in", "r", stdin));
assert(scanf(" %d %d ", &n, &k));
sol=inf_n;
for (int i=1; i<=n; ++i){
assert(scanf(" %d ", &v[i]));
if (d.front()==i-k){
d.pop_front();
}
while (!d.empty()&&v[d.back()]>v[i]){
d.pop_back();
}
d.push_back(i);
if (i>k&&v[d.front()]>sol){
sol=v[d.front()];
sol_pos=i;
}
}
fclose(stdin);
assert(freopen("secventa.out", "w", stdout));
printf("%d %d %d\n", sol_pos-k+1, sol_pos, sol);
fclose(stdout);
return 0;
}