Pagini recente » Cod sursa (job #394366) | Cod sursa (job #343316) | Istoria paginii runda/oji2004_11/clasament | Cod sursa (job #1505256) | Cod sursa (job #2729798)
#include <bits/stdc++.h>
#define N 5000005
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int a[N], deq[N];
int main()
{
int n, k, mini, fr, re, s = 0,i;
fr = 0, re = -1; //initializam dequeue gol
fin>>n>>k;
for(i = 0 ; i < n; i++) fin>>a[i];
for(i = 0 ; i < n; i++)
{
while (fr<= re && a[i] <= a[deq[re]]) re--;
deq[++re] = i;
if(deq[fr] == i-k) fr++; //daca primul element din Deque corespunde cu poz primului element din secventa curenta de K elem
if(i +1 >= k) s += a[deq[fr]]; //daca nu suntem in prima secventa de K adaugam la suma primul element din dequeue
}
fout<<s;
return 0;
}