Cod sursa(job #2044386)

Utilizator catalinpuricoicatalinpuricoi catalinpuricoi Data 21 octombrie 2017 09:47:33
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#include <deque>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
struct Punct
{
    int val;
    int timp;
}x;
int i;
int nr, k, val;
long long total;
deque <Punct> deq;

int main()
{
    f >> nr >> k;

    for(i=1; i <= nr; i++)
    {
        f >> val;
        if(deq.empty() == false)
        {
            x = deq.back();
            if(i-x.timp == k)
            deq.pop_back();
        }

        if(deq.empty() == false)
        x = deq.front();

        while(x.val > val && deq.empty() == false)
        {
            deq.pop_front();
            x = deq.front();
        }
        deq.push_front({val, i});

        if(i >= k)
        total =total + deq.back().val;
    }
    g << total;
}