Pagini recente » Cod sursa (job #568252) | Cod sursa (job #2306823) | Cod sursa (job #380102) | Cod sursa (job #91404) | Cod sursa (job #66695)
Cod sursa(job #66695)
#include <stdio.h>
const int n_max = 500010;
int q[n_max],
a[n_max];
int i, n, k, t, temp, 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)
{
scanf("%d", &a[i]);
add_deque(a[i]);
}
for (; i <= n; ++ i)
{
scanf("%d", &a[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;
}