Pagini recente » Cod sursa (job #2775394) | Cod sursa (job #2670355) | Cod sursa (job #1820716) | Cod sursa (job #2856383) | Cod sursa (job #1836641)
#include <fstream>
#include <iostream>
#define maxn 5000002
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n, k, v[maxn], d[maxn];
long long s;
void read()
{
fin >> n >> k;
for (int i = 1; i <= n; i++)
fin >> v[i];
}
void write()
{
fout << s;
}
void solve()
{
int p = 1, u = 0; //initializare; p > u => deque vid
for (int i = 1; i <= n; i++) {
while (p <= u && v[i] <= v[d[u]])
u--;
d[++u] = i;
if (d[p] == i - k)
p++;
if (i >= k)
s += v[d[p]];
}
}
int main()
{
read();
solve();
write();
return 0;
}