Pagini recente » Cod sursa (job #2616741) | Cod sursa (job #616403) | Cod sursa (job #3256518) | Cod sursa (job #1233008) | Cod sursa (job #1428759)
#include <stdio.h>
#include <cstdlib>
int deque[500000];
int v[500000];
const int smax = 4000000;
char s[smax];
int main()
{
freopen("secventa.in", "r", stdin);
freopen("secventa.out", "w", stdout);
int n, k;
scanf("%d %d\n", &n, &k);
fgets(s, smax, stdin);
char *p = s;
v[0] = strtol(p, &p, 10);
int l = 0;
int r = 0;
deque[l] = 0;
int max = -30001;
int pozmin = 0;
for (int i = 1; i < n; i++)
{
v[i] = strtol(p, &p, 10);
while (r >= l && v[i] < v[deque[r]])
{
r--;
}
deque[++r] = i;
int val = deque[l];
if (v[val] > max && i >= k - 1)
{
max = v[val];
pozmin = i - k;
}
if (i - val == k - 1)
l++;
}
printf("%d %d %d\n", pozmin + 1, pozmin + k, max);
return 0;
}