Pagini recente » Cod sursa (job #2866714) | Cod sursa (job #2374467) | Cod sursa (job #2945294) | Cod sursa (job #367331) | Cod sursa (job #2269829)
#include <fstream>
#include <deque>
#include <algorithm>
#include <climits>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
long long n, k, suma, a[5000001];
deque <long long> q;
int main()
{
f>>n>>k;
for(int i=0; i<n; i++)
f>>a[i];
for(int i=0; i<n; i++)
{
while(!q.empty() && a[i]<=a[q.back()])
q.pop_back();
q.push_back(i);
if(q.front()==i-k-1)
q.pop_front();
if(i>=k-1)
{
while(!q.empty() && i-q.front()>=k)
q.pop_front();
suma+=a[q.front()];
}
}
g<<suma;
return 0;
}