Pagini recente » Cod sursa (job #1663566) | Cod sursa (job #1604890) | Cod sursa (job #883986) | Cod sursa (job #797956) | Cod sursa (job #2842379)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream f ("deque.in");
ofstream g ("deque.out");
int a[5000001];
int main()
{
deque <int> D;
int n, k;
f >> n >> k;
for (int i = 1; i <= n; i++)
{
f >> a[i];
}
for (int i = 1; i <= k; i++)
{
while (D.empty() == false && a[i] < D.back())
{
D.pop_back();
}
D.push_back(a[i]);
}
long long s = D.front();
for (int i = k + 1; i <= n; i++)
{
while (D.empty() == false && a[i] < D.back())
{
D.pop_back();
}
D.push_back(a[i]);
if (D.front() == a[i - k])
{
D.pop_front();
}
s += D.front();
}
g << s;
}