Cod sursa(job #2429915)

Utilizator viftode4Iftode Vlad viftode4 Data 11 iunie 2019 20:40:44
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin( "deque.in" );
ofstream fout( "deque.out" );
int cost[5000005];
deque<int> q;
int k, n, x;
long long sum = 0;
int main()
{
    fin >> n >> k;
    fin >> cost[1];
    q.push_back( 1 );

    for( int i = 2; i <= n; i++ )
        {
            fin >> cost[i];
            int b = q.back();
            int f = q.front();

            while( !q.empty() && cost[q.back()] >= cost[i] )
                q.pop_back();

            q.push_back( i );

            while( q.front() <= i - k && !q.empty() )
                q.pop_front();

            if( i >= k )
                sum += cost[q.front()];

        }

    fout << sum;
    return 0;
}