Cod sursa(job #1274562)

Utilizator eu3neuomManghiuc Teodor-Florin eu3neuom Data 23 noiembrie 2014 23:13:25
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("deque.in");
ofstream g("deque.out");

const int NMax = 5000010;
int v[NMax],dq[NMax];

int main()
{
    int N,K,fata,spate;
    long long int sum = 0;
    f >> N >> K;
    for(int i = 1; i <= N; i++)
        f >> v[i];
    fata = 1;
    spate = 0;
    for(int i = 1; i <= N; i++){
        while(fata <= spate && v[i] <= v[dq[spate]])
            spate--;
        dq[++spate] = i;
        if(dq[fata] == i - K)
            fata++;
        if(i >= K)
            sum += v[dq[fata]];
    }
    g << sum;
    return 0;
}