Pagini recente » Cod sursa (job #1825253) | Cod sursa (job #234253) | Cod sursa (job #2602012) | Cod sursa (job #2299307) | Cod sursa (job #3127147)
#include <iostream>
#include <fstream>
#include <climits>
#define cout df
using namespace std;
//ofstream df("dbg.out");
const int N = 5e6 + 10;
int dq[N], v[N];
int main()
{
int n, k;
ifstream f("deque.in");
f >> n >> k;
for(int i = 1; i <= n; i++){
f >> v[i];
}
long long sum = 0;
int top, bot;
top = 0;
bot = 0;
for(int i = 1; i <= n; i++){
while(top <= bot && v[i] <= v[dq[bot]])
bot--;
bot++;
dq[bot] = i;
if(dq[top] == i-k)
top++;
if(i >= k)
sum += v[dq[top]];
}
//cout << m.get_min();
ofstream g("deque.out");
g << sum;
return 0;
}