Pagini recente » Cod sursa (job #1930300) | Cod sursa (job #1808499) | Cod sursa (job #2746667) | Cod sursa (job #2731890) | Cod sursa (job #2563964)
#include <iostream>
#include <fstream>
const int MAXN = 5e6 + 1;
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
int n,k,d[MAXN],v[MAXN],st,dr;
long long suma = 0;
int main()
{
in>>n>>k;
for(int i = 1; i <= n; i++){
in>>v[i];
}
st = 1,dr = 1;
for(int i = 1; i <= n; i++){
while(dr >= st && v[i] < v[d[dr]])
dr--;
d[++dr] = i;
if(i - d[st] >= k)
st++;
// for(int i = st; i <= dr; i++)
// cout<<v[d[i]]<<" ";
// cout<<endl;
if(i >= k)
suma += v[d[st]];
}
out<<suma;
return 0;
}