Pagini recente » Cod sursa (job #405457) | Cod sursa (job #2535865) | Cod sursa (job #1735343) | Cod sursa (job #1382601) | Cod sursa (job #3158858)
#include <bits/stdc++.h>
#include <unordered_map>
using namespace std;
#define ll long long
#define ull unsigned long long
#define nmax 5000006
#define MOD 9901
#define INF 2123456789
//#define fin cin
//#define fout cout
ifstream fin("deque.in");
ofstream fout("deque.out");
int n, k;
int a[nmax];
deque <int> dq;
/**
i = 1 2 3 4 5 6 7 8 9
a = -7 9 2 4 -1 5 6 7 1
back front
dq= 9
s = (-7) + (2) + (-1) + (-1) + (-1) + (5) + (1)
s = -10 + 8 = -2
**/
int main()
{
int i, mini, s;
fin >> n >> k;
mini = INF; s = 0;
for (i = 1; i <= n; i++)
fin >> a[i];
for (i = 1; i <= n; i++)
{
while (!dq.empty() && a[i] <= a[dq.back()])
dq.pop_back();
dq.push_back(i);
if (!dq.empty() && dq.front() == i - k)
dq.pop_front();
if (i >= k)
s += a[dq.front()];
}
fout << s << "\n";
fin.close();
fout.close();
return 0;
}