Cod sursa(job #504785)
#include <cstdio>
#define nmax 5000000
#define inf -100000
using namespace std;
FILE *fin=fopen("secventa.in", "r");
FILE *fout=fopen("secventa.out", "w");
int v[nmax], deque[nmax];
int front, back, n, k, maxim;
int main()
{
int i;
maxim = inf;
fscanf(fin, "%d%d", &n, &k);
for(i=1; i<=n; ++i)
fscanf(fin, "%d", &v[i]);
front = 1;
for(i=1; i<=n; ++i)
{
while(front<=back && v[i]<=v[deque[back]]) --back;
deque[++back] = i;
if(deque[front] == i-k) ++front;
if(i>=k)
if(maxim<v[deque[front]])
maxim=v[deque[front]];
}
fprintf(fout, "%d", maxim);
}