Pagini recente » Cod sursa (job #1258240) | Cod sursa (job #1825120) | Cod sursa (job #703658) | Cod sursa (job #2466529) | Cod sursa (job #2936930)
#include <iostream>
#include <deque>
#include <fstream>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
deque <int> q1, q;
int fr[1000005], *a, n, k, s, *r1;
struct ceva{
int x, y;
}r[5000005];
int main()
{
f >> n >> k;
int o;
a = new int[1000005];
int nr = 0;
for (int i = 1;i <= n;i++){
f >> a[i];
fr[i] = i;
}
int p = 0;
for (int i = 1;i <= n;i++){
p++;
while(!q1.empty() && a[q1.back()] > a[i])q1.pop_back();
while(!q1.empty() && i - q1.front() + 1 > k)q1.pop_front();
q1.push_back(i);
if (!q1.empty() && p >= k){
r[++nr].x = a[q1.front()];
}
}
for (int i = 1;i <= nr;i++){
s += r[i].x;
}
g << s;
}