Cod sursa(job #1218367)

Utilizator andreey_047Andrei Maxim andreey_047 Data 10 august 2014 18:36:41
Problema Secventa Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <cstdio>
#define nmax 500009
using namespace std;
int n,k;
typedef int Deque;
Deque D[nmax];
int a[nmax],maxim;
int main(){
    int i,front,back,x,sum=0,j;
    freopen("secventa.in","r",stdin);
    freopen("secventa.out","w",stdout);
    scanf("%d%d",&n,&k);
    front = 1; back = 0;
    for(i=1;i<=n;i++) scanf("%d",&a[i]);
    maxim = -99999;
    for(i=1;i<=n;i++){
        while(front <= back && a[i] < a[D[back]]) back--;
    D[++back] = i;

    if(a[D[front]] < a[i] && D[front] <= i-k) front++;
    if(i >= k&&a[D[front]] > maxim) maxim = a[D[front]];
   // if(i==6) {for(j=front;j<=back;j++) cout << a[D[j]]<<' ';}

    }
    //for(i=1;i<=3;i++) cout << a[D[i]]<<' ';
    cout << maxim;
    return 0;
}