Pagini recente » Cod sursa (job #10838) | Cod sursa (job #2174882) | Cod sursa (job #2387272) | Cod sursa (job #164488) | Cod sursa (job #3135444)
#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;
}