Cod sursa(job #2044256)

Utilizator davidbejenariu2David Bejenariu davidbejenariu2 Data 21 octombrie 2017 09:02:50
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>
#include <queue>
#include <deque>

using namespace std;

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

int a[5000001], n, k;

int main()
{   deque <int> d;
    int i, s = 0;
    fin >> n >> k;
    for ( i = 1; i <= n; ++i )
         fin >> a[i];
    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;
}