Cod sursa(job #1268664)

Utilizator cipriancxFMI - gr143 Timofte Ciprian cipriancx Data 21 noiembrie 2014 11:38:13
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <iostream>
#include <cstdio>
#include <cstdlib>

using namespace std;

int n,k,stiva[5000001],numere[5000001],start,stop=-1;
long long int suma;

void baga(int indice)
{
 while((stop>=start) && (numere[indice]<numere[stiva[stop]]))
 {
     stop--;
 }
 stop++; stiva[stop]=indice;
}

int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);

scanf("%d %d",&n,&k);
for(int i=1; i<=k; i++){scanf("%d",&numere[i]); baga(i); }
suma+=numere[stiva[start]];


for(int i=k+1; i<=n; i++)
{
    scanf("%d",&numere[i]);
    baga(i);
    while(stiva[start]<= i-k){start++; }
    suma+=numere[stiva[start]];

}
cout<<suma;




    return 0;
}