Cod sursa(job #1919868)

Utilizator SolcanMihaiSolcan Mihai Andrei SolcanMihai Data 9 martie 2017 21:23:15
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <cstdio>
#include <deque>

using namespace std;

int n, m;
deque<int> deq;

int main()
{
    freopen("deque.in", "r", stdin);
    freopen("deque.out", "w", stdout);

    scanf("%d %d", &n, &m);

    int x;

    for(int i = 0; i < m; i++)
    {
        scanf("%d", &x);

        deq.push_back(x);
    }

    long long sum = deq.front();
    int nr = m;

    for(int i = m; i < n; i++)
    {
        scanf("%d", &x);

        while(nr >= m)
        {
            deq.pop_front();
            nr--;
        }

        if(deq.empty() == false)
        {
            while(deq.front() > x)
            {
                deq.pop_front();
                nr--;

                if(nr == 0)
                {
                    break;
                }
            }
        }

        deq.push_back(x);
        nr++;

        sum += deq.front();
    }

    printf("%lld", sum);

    return 0;
}