Pagini recente » Cod sursa (job #2655025) | Cod sursa (job #3201958) | Cod sursa (job #75355) | Cod sursa (job #812204) | Cod sursa (job #508993)
Cod sursa(job #508993)
#include <iostream>
#include <fstream>
#include <deque>
int n;
int sir[5000000];
using namespace std;
int main() {
int n, k, 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 );
if( a.back() == i - k) a.pop_back();
suma += sir[a.back()];
}
fout<<suma;
return 0;
}