Cod sursa(job #799516)

Utilizator octrarOctav M. octrar Data 19 octombrie 2012 10:18:50
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
# include <fstream>
# define nmax 5000000

using namespace std;

ifstream fin("deque.in");
ofstream fout("deque.out");

int n, k;
int deque[nmax];
int a[nmax];
int p, q;
long sum;

int main() {
    int i;
    fin >> n >> k;
    for(i = 1; i <= n; ++ i) fin >> a[i];
    p = 1;
    for(i = 1; i <= n; ++ i) {
        while(p <= q && a[i] <= a[deque[q]]) --q;
        deque[++q] = i;
        // ++ p;
        if(deque[p] == i-k) ++p;
        if(i >= k) sum += a[deque[p]];
    }
    fout << sum << "\n";
    return 0;
}