Pagini recente » Cod sursa (job #3367443) | Cod sursa (job #3366870) | Cod sursa (job #3368791) | Cod sursa (job #3367442) | Cod sursa (job #3367876)
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
deque<long long> d;
vector <int> A;
int main()
{
ifstream fin ("deque.in");
ofstream fout ("deque.out");
long long n,k;
fin >> n >> k;
A.resize(n);
for(int i=0; i<n; i++){
fin >> A[i];
}
for(int i=0; i<k; i++){
while(!d.empty() && A[d.back()]>=A[i]){
d.pop_back();
}
d.push_back(i);
}
long long s=0;
s+=A[d.front()];
//fout << A[d.front()] << " ";
for(int i=k; i<n; i++){
while(!d.empty() && A[d.back()]>=A[i]){
d.pop_back();
}
d.push_back(i);
while(!d.empty() && d.front()<=i-k){
d.pop_front();
}
s+=A[d.front()];
//fout << A[d.front()] << " ";
}
//fout << "\n";
fout << s;
return 0;
}