Pagini recente » Cod sursa (job #1923236) | Cod sursa (job #99452) | Cod sursa (job #586602) | Cod sursa (job #538587) | Cod sursa (job #66683)
Cod sursa(job #66683)
#include <stdio.h>
const int n_max = 500010;
int q[n_max],
a[n_max];
int i, n, k, t, max = -100000, left = 0, right = -1;
void add_deque(int x)
{
for (; q[right] > x && right >= left; --right)
;
q[++right] = x;
//Debugging
/* printf("Deque after adding %d\n", x);
for (int i = left; i <= right; ++ i)
printf("%d ",q[i]);
printf("\n");*/
}
int main()
{
freopen("secventa.in","r",stdin);
freopen("secventa.out","w",stdout);
scanf("%d %d",&n,&k);
for (i = 1; i <= n; ++ i)
scanf("%d", &a[i]);
// Introducerea primelor k elemente in deque
for (i = 1; i <= k; ++ i)
add_deque(a[i]);
for (; i <= n; ++ i)
{
if (max < q[left])
{
max = q[left];
t = i;
}
if (q[left]==a[i-k])
++left;
add_deque(a[i]);
}
if (max < q[left])
{
max = q[left];
t = i;
}
printf("%d %d %d",t-k,t-1,max);
return 0;
}