Cod sursa(job #2269790)

Utilizator st_marianStoica Marian st_marian Data 26 octombrie 2018 16:46:41
Problema Deque Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n, k;
long long sum, x;
struct elem
{
    int val, poz;
};
deque<elem> mydeck;
int main()
{
    fin>>n>>k;
    fin>>x;
    mydeck.push_back(elem{});
    mydeck.back().val=x;
    mydeck.back().poz=1;
    for(int i=2; i<=n; i++)
    {
        fin>>x;
        for(int poz=mydeck.size()-1; i-mydeck[poz].poz<k && poz>=0; poz--)
        {
            if(x<mydeck[poz].val)   mydeck[poz].val=x;
            else break;
        }
        mydeck.push_back(elem{});
        mydeck.back().poz=i;
        mydeck.back().val=x;
    }
    while(mydeck.size()>=k)
    {
        sum+=mydeck.front().val;
        mydeck.pop_front();
    }
    fout<<sum<<'\n';
    return 0;
}