Pagini recente » Cod sursa (job #1768961) | Cod sursa (job #71615) | Cod sursa (job #1192147) | Cod sursa (job #1153878) | Cod sursa (job #735950)
Cod sursa(job #735950)
#include <fstream>
#include <deque>
#define maxn 5000010
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int n,k,fr,bk,a[maxn],i;
deque<int> D;
long long ans;
void push(int i){
while(!D.empty() && a[D.back()]>=a[i]) D.pop_back();
D.push_back(i);
return;
}
void pop(int i){
while (!D.empty() && D.front()<=i-k) D.pop_front();
return;
}
int min(){
if(!D.empty()) return a[D.front()];
return 0;
}
int main(){
f>>n>>k;
for(i=1;i<=n;i++)
f>>a[i];
for(i=1;i<k;i++)
push(i);
for(i=k;i<=n;i++){
pop(i);
push(i);
ans+=min();
}
g<<ans<<'\n';
f.close(); g.close();
return 0;
}