Pagini recente » Cod sursa (job #2313871) | Cod sursa (job #3330858) | Cod sursa (job #944994) | Cod sursa (job #1726469) | Cod sursa (job #3304013)
#include<cstdio>
#include<deque>
using namespace std;
const int NMAX = 500001;
int v[NMAX];
int main() {
freopen("secventa.in", "r", stdin);
freopen("secventa.out", "w", stdout);
int n,k,i;
scanf("%d %d",&n,&k);
for(i=1;i<=n;i++) {
scanf("%d",&v[i]);
}
deque<int> q;
for(i=1;i<=k;i++) {
while(!q.empty() && q.back()>v[i]) {
q.pop_back();
}
q.push_back(i);
}
int baza_min,st,dr;
baza_min = v[q.front()];
st = 1;
dr = k;
for (i=k;i<=n;i++) {
while(!q.empty() && v[q.back()]>=v[i]) {
q.pop_back();
}
q.push_back(i);
if (q.front() < i - k + 1) {
q.pop_front();
}
if (baza_min < v[q.front()]) {
baza_min = v[q.front()];
st = i-k+1;
dr = i;
}
}
printf("%d %d %d",st,dr,baza_min);
return 0;
}