Cod sursa(job #1428740)
Utilizator | Adrian D armageddon89_r | Data | 5 mai 2015 00:05:29 |
---|---|---|---|
Problema | Secventa | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.55 kb |
#include <stdio.h>
int deque[500000];
int v[500000];
int main()
{
freopen("secventa.in", "r", stdin);
freopen("secventa.out", "w", stdout);
int n, k;
scanf("%d %d", &n, &k);
scanf("%d", &v[0]);
int l = 0;
int r = 0;
deque[l] = 0;
int max = v[0];
for (int i = 1; i < n; i++)
{
scanf("%d", &v[i]);
while (r >= l && v[i] < v[deque[r]])
{
r--;
}
deque[++r] = i;
if (v[deque[l]] > max)
{
max = v[deque[l]];
}
if (i - deque[l] == k - 1)
l++;
}
printf("%d\n", max);
return 0;
}