Pagini recente » Cod sursa (job #1620543) | Cod sursa (job #453476) | Cod sursa (job #2693503) | Cod sursa (job #169891) | Cod sursa (job #2851738)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
deque <int> q;
int n, a[5000001];
int k;
void citire()
{
fin >> n >> k;
for(int i = 0; i < n; ++i)
fin >> a[i];
}
void adaugare(int i)
{
if(q.empty())
{
q.push_back(i);
return;
}
while(!q.empty() && a[q.back()] >= a[i])
{
q.pop_back();
}
q.push_back(i);
}
long long suma()
{
long long s = 0;
for(int i = 0; i < n; ++i)
{
adaugare(i);
//cout << a[q.front()] << ' ';
if(i - k == q.front())
q.pop_front();
if(i >= k - 1)
s += a[q.front()];
}
return s;
}
int main()
{
citire();
fout << suma();
return 0;
}