Pagini recente » Cod sursa (job #3367831) | Cod sursa (job #3368789) | Cod sursa (job #3367874) | Cod sursa (job #3368714) | Cod sursa (job #3367872)
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
deque<long long int> d;
vector <long long int> A;
int main()
{
ifstream fin ("deque.in");
ofstream fout ("deque.out");
long long int n,k;
fin >> n >> k;
A.resize(n);
for(int i=0; i<n; i++){
fin >> A[i];
}
d.push_front(0);
for(int i=0; i<k; i++){
while(!d.empty() && A[d.back()]>A[i]){
d.pop_back();
}
d.push_back(i);
}
int 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;
}