Cod sursa(job #1753757)

Utilizator dtoniucDaniel Toniuc dtoniuc Data 7 septembrie 2016 09:48:25
Problema Deque Scor 15
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>
#include <deque>

using namespace std;

int main()
{
    ifstream fin;
    ofstream fout;
    fout.open("deque.out");
    fin.open("deque.in");

    int n, k;
    deque<int> deque;
    int *v = new int[n +1]();
    fin >> n >> k;

    long long sum = 0;
    for(int i = 1; i <= n; i++)
    {
    	fin >> v[i];

    	while(!deque.empty() && v[i] <= v[deque.back()])
    		deque.pop_back();

    	deque.push_back(i);

    	if(i - k == deque.front())
    		deque.pop_front();

    	if(i >= k)
    		sum = sum + v[deque.front()];
    }

    fout << sum;

    fin.close();
    fout.close();
    return 0;
}