Pagini recente » Cod sursa (job #791815) | Cod sursa (job #334697) | Cod sursa (job #452947) | Cod sursa (job #1514182) | Cod sursa (job #3137667)
#include <bits/stdc++.h>
using namespace std;
#ifndef HOME
ifstream in("deque.in");
ofstream out("deque.out");
#define cin in
#define cout out
#endif // HOME
int v[5000001];
int decc[5000001], st = 0, dr = -1;
void baga(int poz)
{
while(dr >= st && v[poz] <= v[decc[dr]])
dr--;
decc[++dr] = poz;
}
void scoate(int poz)
{
if(decc[st] == poz)
st++;
}
int main()
{
#ifdef HOME
freopen("test.in", "r", stdin);
freopen("test.out", "w", stdout);
#endif
int n, k;
long long rasp = 0;
cin >> n >> k;
for(int i = 1; i <= n; i++)
cin >> v[i];
for(int i = 1; i <= k - 1; i++)
baga(i);
for(int i = k; i <= n; i++)
{
baga(i);
rasp += v[decc[st]];
scoate(i - k + 1);
}
cout << rasp;
return 0;
}