Cod sursa(job #1493958)

Utilizator lucianminceaMincea Lucian lucianmincea Data 30 septembrie 2015 10:34:11
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <fstream>
#define MAX 5000001

using namespace std;

int n, k, a[MAX], deque[MAX];
int top, bot;
long long s;

int main()
{
    ifstream f("deque.in");
    ofstream g("deque.out");
    f>>n>>k;
    for (int i=1; i<=n; ++i)
        f>>a[i];
    top=1;
    bot=0;
     for (int i=1; i<=n; ++i)
    {
        while (top <= bot && a[i]<=a[ deque[bot] ])
            bot--;
        deque[++bot] = i;
        if (deque[top] == i-k)
            top++;
        if (i >= k)
            s += a[ deque[top]];

    }
    g<<s;
    return 0;
}