Pagini recente » Cod sursa (job #2692994) | Cod sursa (job #1366871) | Cod sursa (job #3166870) | Cod sursa (job #2121568) | Cod sursa (job #333865)
Cod sursa(job #333865)
#include <fstream>
#include <deque>
#include <iostream>
using namespace std;
deque<long long> list;
long N,K,A[5000010],i;
long long sum;
int main () {
ifstream in;
ofstream out;
in.open("deque.in");
out.open("deque.out");
in >> N >> K;
for (i=1;i<=N;i++) {
in >> A[i];
}
for (i=1;i<=N;i++) {
while(!list.empty()&&A[i]<=A[list.back()]) {
list.pop_back();
}
list.push_back(i);
if (list.front()==i-K) list.pop_front();
if (i>=K) sum+=A[list.front()];
}
out<<sum;
out.close();
return 0;
}