Pagini recente » Cod sursa (job #966336) | Cod sursa (job #1584281) | Cod sursa (job #2834633) | Cod sursa (job #1543560) | Cod sursa (job #2143031)
#include <stdio.h>
#include <limits.h>
#define SIZE 500000
struct sol {
int b, m;
};
struct elem {
int i, x;
};
static struct elem v[SIZE];
int main(void)
{
int i, n, k, x, cmin, h, t;
struct sol s;
scanf("%d %d", &n, &k);
s.b = -1;
s.m = INT_MIN;
cmin = INT_MAX;
h = t = 0;
for (i = 1; i <= n; i++) {
scanf("%d", &x);
if (v[h].i <= i - k) {
h++;
}
while (t > h && v[t - 1].x > x) {
cmin = v[t - 1].i;
t--;
}
v[t].x = x;
v[t].i = i;
t++;
if (v[h].x > s.m) {
s.m = v[h].x;
s.b = cmin - 1;
}
}
printf("%d %d %d\n", s.b, s.b + k - 1, s.m);
return 0;
}