Pagini recente » Cod sursa (job #3265650) | Cod sursa (job #2237452) | Cod sursa (job #2781976) | Cod sursa (job #2301173) | Cod sursa (job #909619)
Cod sursa(job #909619)
#include <cstdio>
#include <deque>
#include <algorithm>
#define NMAX 5000001
using namespace std;
deque <int> D;
int n;
int k;
int a[NMAX];
long long s;
void read()
{
freopen("deque.in", "r", stdin);
scanf("%d %d\n", &n, &k);
for(int i = 1; i <= n; ++ i)
scanf("%d ", &a[i]);
}
void solve()
{
for(int i = 1; i <= n; ++ i)
{
while(!D.empty() && a[D.back()] > a[i])
D.pop_back();
D.push_back(i);
if(D.front() <= i - k)
D.pop_front();
if(i >= k)
s += a[D.front()];
}
}
int main()
{
read();
solve();
freopen("deque.out", "w", stdout);
printf("%lld\n", s);
return 0;
}