Pagini recente » Cod sursa (job #2929599) | Cod sursa (job #2589703) | Cod sursa (job #2230035) | Cod sursa (job #705520) | Cod sursa (job #2007510)
#include <fstream>
#include <deque>
#define INPUT_FILE "deque.in"
#define OUTPUT_FILE "deque.out"
#define DIMENSION 5000010
using namespace std;
int n, k;
int v[DIMENSION];
long long s = 0;
void Read()
{
ifstream f(INPUT_FILE);
f >> n >> k;
for (int i = 1;i <= n;++i)
f >> v[i];
f.close();
}
void Solve()
{
deque<int> a;
for (int i = 1;i <= n;++i)
{
while (!a.empty() && v[a.back()] >= v[i])
a.pop_back();
a.push_back(i);
if (a.front() == i - k)
a.pop_front();
if (i >= k)
s += v[a.front()];
}
}
void Write()
{
ofstream g(OUTPUT_FILE);
g << s << "\n";
g.close();
}
int main()
{
Read();
Solve();
Write();
return 0;
}