Pagini recente » Cod sursa (job #884729) | Cod sursa (job #1668719) | Cod sursa (job #2750038) | Cod sursa (job #1953083) | Cod sursa (job #1235523)
#include <cstdio>
#include <deque>
#define LL long long
#define FIN "deque.in"
#define FOUT "deque.out"
#define MAX 5000000
using namespace std;
int N, k, VEC[ MAX ];
int sum = 0;
deque<pair <LL, int> > DEQUE;
void read() {
freopen(FIN, "r", stdin);
scanf("%d %d", &N, &k);
for(int i = 0; i < N; i++) {
scanf("%d", &VEC[i]);
}
fclose( stdin );
};
void solve() {
freopen(FOUT, "w", stdout);
for(int i = 0; i < N; i++) {
while( !DEQUE.empty() && DEQUE.back().first >= VEC[ i ] ) DEQUE.pop_back();
DEQUE.push_back( make_pair( VEC[ i ], i) );
if(DEQUE.front().second == i - k) DEQUE.pop_front();
if(i >= k - 1) sum += DEQUE.front().first;
}
printf("%d", sum);
fclose( stdout );
}
int main() {
read();
solve();
return(0);
}