Cod sursa(job #2263242)

Utilizator isav_costinVlad Costin Andrei isav_costin Data 18 octombrie 2018 15:00:04
Problema Deque Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <cstdio>
#include <deque>

using namespace std;

deque<int>v;
int s[5000005];

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

  int n, m, k;

  scanf( "%d%d%d", &n, &m, &s[1] );

  v.push_back(s[1]);

  for( int i=2;i<=m;i++ )
  {
    scanf( "%d", &s[i] );

    while( !v.empty() && s[i]<v.back() )
      v.pop_back();

    v.push_back(s[i]);
  }

  long long sum=v.front();

  for( int i=m+1;i<=n;i++ )
  {
    scanf( "%d", &s[i] );

    if( s[i-m]==v.front() )
      v.pop_front();

    while( !v.empty() && s[i]<v.back() )
      v.pop_back();

    v.push_back(s[i]);

    sum+=v.front();
  }

  printf( "%lld", sum );

  return 0;
}