Pagini recente » Cod sursa (job #1727005) | Cod sursa (job #1463535) | Cod sursa (job #789751) | Cod sursa (job #2074164) | Cod sursa (job #2936936)
#include <iostream>
#include <deque>
#include <fstream>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
deque <int> q1, q;
int *a, n, k, s, *r1;
struct ceva{
int x, y;
}r[5000005];
int main()
{
f >> n >> k;
a = new int[5000005];
int nr = 0;
for (int i = 1;i <= n;i++){
f >> a[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;
}