Pagini recente » Cod sursa (job #323460) | Cod sursa (job #3246260) | Cod sursa (job #13962) | Cod sursa (job #189254) | Cod sursa (job #300189)
Cod sursa(job #300189)
using namespace std;
#include <cstdio>
#include <deque>
#define Nmax 5000010
deque <int> D;
int n, k, i, v[Nmax];
long long sol;
int main(){
FILE *f = fopen("deque.in", "r");
FILE *g = fopen("deque.out", "w");
fscanf(f,"%d %d", &n, &k);
for(i = 1; i <= n; i++)
fscanf(f,"%d", &v[i]);
D.push_back(1);
for( i = 2; i <= n ; i++){
while( !D.empty() && D.front() <= i - k )
D.pop_front();
while( !D.empty() && v[i] <= v[ D.back() ] )
D.pop_back();
D.push_back(i);
if(i >= k)
sol+= (long long)v[ D.front() ];
}
fprintf(g,"%lld", sol);
fclose(f);
fclose(g);
return 0;
}