Cod sursa(job #1513062)

Utilizator dutzulBodnariuc Dan Alexandru dutzul Data 28 octombrie 2015 22:29:47
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <bits/stdc++.h>
#define LE 5000666

using namespace std;

ifstream f("deque.in");
ofstream g("deque.out");
deque<int> deq;
int a[LE];

int main()
{
  int n,k,i;

  f>>n>>k;
  for(i=1;i<=n;++i) f>>a[i];

  for(i=1;i<k;++i)
  {
     while (deq.empty()==false&&a[deq.back()]>=a[i]) deq.pop_back();
     deq.push_back(i);
  }

  long long result=0;

  for(i=k;i<=n;++i)
  {
     while (deq.empty()==false&&a[deq.back()]>=a[i]) deq.pop_back();
     deq.push_back(i);
     while (deq.front()<=i-k) deq.pop_front();
     result+=a[deq.front()];
  }


  g<<result<<'\n';

  return 0;
}