Cod sursa(job #2291506)

Utilizator FlaviusFeteanFetean Flavius FlaviusFetean Data 28 noiembrie 2018 10:07:12
Problema Deque Scor 25
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>

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

int v[5000005], deq[5000005], poz[5000005];

int main()
{
    int i, j, n, k, front = 1, end = 1, s = 0;
    fin >> n >> k;
    for(i = 1; i <= n; i++) fin >> v[i];

    deq[1] = v[1];poz[1] = 1;
    for(i = 2; i <= n; i++){
        deq[++end] =  v[i]; poz[end] = i;
        while(deq[end] < deq[end - 1] && end > front)
            poz[end - 1] = poz[end], deq[end - 1 ] = deq[end--];
        if(i >= k) s += deq[front];
        if(poz[front] == i - k + 1) front++;
    }

    fout << s;

    return 0;
}