Pagini recente » Cod sursa (job #720956) | Cod sursa (job #1388208) | Cod sursa (job #881839) | Cod sursa (job #304036) | Cod sursa (job #97073)
Cod sursa(job #97073)
#include<stdio.h>
int n, k, i, first = 1, last = 1, max = -30001, p1, p2, x;
struct deque{
int v, i;
};
deque q[500005];
int main()
{
freopen("secventa.in", "rt", stdin);
freopen("secventa.out", "wt", stdout);
scanf("%d%d", &n, &k);
scanf("%d", &x);
q[1].v = x;
q[1].i = 1;
for (i=2; i<=n; i++){
scanf("%d", &x);
while (first <= last && i-q[first].i >= k)
first ++;
while (first <= last && x <= q[last].v)
last --;
q[++last].v = x;
q[last].i = i;
if (q[first].v > max && i-k+1 > 0){
max = q[first].v;
p1 = i-k+1;
p2 = i;
}
}
printf("%d %d %d\n", p1, p2, max);
return 0;
}