Pagini recente » Cod sursa (job #842129) | Cod sursa (job #2744524) | Cod sursa (job #2096568) | Cod sursa (job #2068185) | Cod sursa (job #2077142)
#include <fstream>
#include <deque>
#include <vector>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
deque <int> coada;
int n,k;
long long rezolvare(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()
{
in>>n>>k;
vector <int> v(n+1);
for(int i=1;i<=n;i++){
in>>v[i];
}
out<<rezolvare(v)<<'\n';
return 0;
}