Cod sursa(job #2457134)

Utilizator andreic06Andrei Calota andreic06 Data 16 septembrie 2019 18:45:40
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.6 kb
#include <iostream>
#include <deque>
#include <cstdio>

using namespace std;

int v[5000001];

int main()
{

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


   int n, k;
   int i;
   long long s;

   deque < int > d;

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

   s = 0;
   for ( i = 0; i < n; i ++ ){

      scanf ( "%d", &v[i] );

      while ( d.empty() == 0 && v[i] <= v[d.back()] )
         d.pop_back();
      d.push_back( i );


      if ( i >= k - 1 )
        s += v[d.front()];
      if ( d.front() == i - k + 1  )
        d.pop_front();


   }
   cout << s;

    return 0;
}