Pagini recente » Cod sursa (job #2695843) | Cod sursa (job #2418078) | Cod sursa (job #658246) | Cod sursa (job #2574692) | Cod sursa (job #2044485)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n, k;
long long int sum;
struct element
{
int nr, poz;
} x;
deque <element> dq;
int main()
{
int i, j;
fin >> n >> k;
fin >> x.nr; x.poz = 1;
dq.push_front(x);
for (i = 2; i < k; ++i)
{
fin >> x.nr; x.poz = i;
while (!dq.empty() && x.nr < dq.back().nr)
dq.pop_back();
dq.push_back(x);
}
for (i = k; i <= n; ++i)
{
fin >> x.nr; x.poz = i;
if (dq.front().poz == i - k)
{
dq.pop_front();
}
while (!dq.empty() && x.nr < dq.back().nr)
dq.pop_back();
dq.push_back(x);
sum += dq.front().nr;
}
fout << sum << '\n';
return 0;
}