Pagini recente » Cod sursa (job #2041572) | Cod sursa (job #886019) | Cod sursa (job #1416911) | Cod sursa (job #2786999) | Cod sursa (job #2716123)
#include <fstream>
using namespace std;
const int N = 5000000;
int v[N], dq[N + 1];
int main()
{
ifstream in("deque.in");
ofstream out("deque.out");
int n, k, st, dr;
long long s;
in >> n >> k;
st = 1, dr = s = 0;
for (int i = 0; i < n; ++i)
{
in >> v[i];
if (st <= dr && dq[st] == i - k)
++st; //pop back
while (st <= dr && v[i] <= v[dq[dr]])
--dr; //pop front
dq[++dr] = i;
if (i >= k - 1)
s += v[dq[st]];
}
out << s;
in.close();
out.close();
return 0;
}