Pagini recente » Cod sursa (job #255700) | Cod sursa (job #1170138) | Cod sursa (job #1586465) | Cod sursa (job #1891692) | Cod sursa (job #1804042)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n, k, v[5000010];
deque<int> d;
long long s;
void insereaza(int x);
void sterge(int i);
int main()
{
int i;
fin >> n >> k;
for (i = 1; i <= k - 1; i++)
{
fin >> v[i];
insereaza(i);
}
for (i = k; i <= n; i++)
{
fin >> v[i];
sterge(i);
insereaza(i);
s += (long long)v[d.front()];
}
fout << s << '\n';
fout.close();
return 0;
}
void insereaza(int x)
{
while (!d.empty() && v[x] < v[d.back()])
d.pop_back();
d.push_back(x);
}
void sterge(int i)
{
while (d.front() <= i - k)
d.pop_front();
}