Pagini recente » Cod sursa (job #2718178) | Cod sursa (job #1676944) | Cod sursa (job #2938690) | Cod sursa (job #494895) | Cod sursa (job #2077136)
#include <fstream>
#include <deque>
#include <vector>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
int rezolvare(int n, int k, deque <int> &coada, vector <int> &v){
long long suma=0;
for(int i=1;i<=k;i++){
while(coada.size()&&v[i]<=v[coada.front()]){
coada.pop_front();
}
coada.push_front(i);
}
suma+=v[coada.back()];
for(int i=k+1;i<=n;i++){
while(coada.size()&&v[i]<=v[coada.front()]){
coada.pop_front();
}
coada.push_front(i);
if(coada.back()<=i-k){
coada.pop_back();
}
suma+=v[coada.back()];
}
return suma;
}
int main()
{int n,k;
in>>n>>k;
vector <int> v(n+1);
for(int i=1;i<=n;i++){
in>>v[i];
}
deque <int> coada;
out<<rezolvare(n,k,coada,v);
return 0;
}