Pagini recente » Cod sursa (job #537886) | Cod sursa (job #3155194) | Cod sursa (job #1975466) | Cod sursa (job #2306855) | Cod sursa (job #300171)
Cod sursa(job #300171)
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.front() <= i - k && !D.empty() )
D.pop_front();
while( v[i] <= v[ D.back() ] && !D.empty() )
D.pop_back();
D.push_back(i);
if(i >= k)
sol+= (long long)v[ D.front() ];
}
fprintf(g,"%d", sol);
fclose(f);
fclose(g);
return 0;
}