Pagini recente » Cod sursa (job #289833) | Cod sursa (job #737841) | Cod sursa (job #973150) | Cod sursa (job #1784757) | Cod sursa (job #1266048)
#include <fstream>
#include <deque>
const int NMAX = 5000010;
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
long long N,K,front,back,A[NMAX],suma;
deque <int> Deque;
int main()
{
f >> N >> K;
for (int i = 1; i <= N; ++i)
{
f >> A[i];
}
for (int i = 1; i <= N; ++i)
{
while(!Deque.empty() && A[i] <= A[ Deque.back() ])
{
Deque.pop_back();
}
Deque.push_back(i);
if (Deque.front() == i-K )
Deque.pop_front();
if (i >= K)
suma += A[Deque.front()];
}
g << suma;
f.close();
g.close();
return 0;
}