Pagini recente » Cod sursa (job #2947155) | Cod sursa (job #707119) | Cod sursa (job #258833) | Cod sursa (job #1878436) | Cod sursa (job #508995)
Cod sursa(job #508995)
#include <iostream>
#include <fstream>
#include <deque>
int n;
int sir[5000000];
using namespace std;
int main() {
int n, k;
long long suma = 0;
deque<int> a;
ifstream fin("deque.in");
ofstream fout("deque.out");
fin>>n>>k;
for(int i = 1; i <= n; i++) {
fin>>sir[i];
}
for(int i = 1; i < k; i++) {
while( a.empty() == 0 && sir[i] <= sir[a.front()])
a.pop_front();
a.push_front( i );
}
for( int i = k; i <= n; i++) {
while( a.empty() == 0 && sir[i] <= sir[a.front()])
a.pop_front();
a.push_front( i );
while( a.back() <= i - k) a.pop_back();
suma += sir[a.back()];
}
fout<<suma;
return 0;
}