Cod sursa(job #1533163)

Utilizator ris99Istrate Ruxandra ris99 Data 22 noiembrie 2015 10:37:42
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <fstream>
#define maxn 5000100
using namespace std;
int a[maxn],deque[maxn],Front1,Back1,n,k;
long long sum;
int main()
{ ifstream f("deque.in");
  ofstream g("deque.out");
  int i;
  f>>n>>k;
  for(i=1;i<=n;i++)
  f>>a[i];
  Front1=1; Back1=0;
  for(i=1;i<=n;i++)
  { while (Front1<=Back1&&a[i]<=a[deque[Back1]]) Back1--;
    deque[++Back1]=i;
    if(deque[Front1]==i-k) Front1++;
    if(i>=k) sum+=a[deque[Front1]];
  }
  g<<sum;
    return 0;
}