Cod sursa(job #2044268)

Utilizator davidbejenariu2David Bejenariu davidbejenariu2 Data 21 octombrie 2017 09:07:41
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include <queue>
#include <deque>
#define N 5000001

using namespace std;

ifstream fin( "deque.in" );
ofstream fout( "deque.out" );

int a[N], n, k;
deque <int> d;

void citire()
{
    int i;
    fin >> n >> k;
    for ( i = 1; i <= n; ++i )
         fin >> a[i];
}

int main()
{   long long s = 0;
    int i;
    citire();
    for ( i = 1; i <= n; ++i )
         { while ( !d.empty() && a[d.back()] >= a[i] )
                  d.pop_back();
           d.push_back(i);
           if ( i - k == d.front() )
               d.pop_front();
           if ( i >= k )
               s += a[d.front()];
         }
    fout << s;
    return 0;
}