Pagini recente » Cod sursa (job #1047520) | Cod sursa (job #1128104) | Cod sursa (job #1029022) | Cod sursa (job #512435) | Cod sursa (job #2045907)
#include <iostream>
#include <fstream>
#include <deque>
std::ifstream f("deque.in");
std::ofstream g("deque.out");
int v[5000000];
long long rez;
int main()
{
int N, K;
f>>N>>K;
for(int i=1; i<=N; i++)
f>>v[i];
std::deque <int> minDq;
int i;
for(i=1; i<=K; i++) {
while(!minDq. empty() && v [minDq. front()] >= v[i])
minDq. pop_front();
minDq. push_front(i);
}
rez += v[minDq. back()];
for(; i<=N; i++) {
if(minDq. back() == i-K)
minDq.pop_back();
while(!minDq. empty() && v [minDq. front()] >= v[i])
minDq. pop_front();
minDq. push_front(i);
rez += v[minDq. back()];
}
g<<rez;
return 0;
}