Pagini recente » Cod sursa (job #1204107) | Cod sursa (job #1224159) | Cod sursa (job #2561934) | Cod sursa (job #2293290) | Cod sursa (job #1429101)
#include <cstdio>
#include <deque>
#define f first
#define s second
using namespace std;
FILE *fin = fopen("deque.in" ,"r");
FILE *fout= fopen("deque.out","w");
deque <pair<int, int> > Deq;
int N, K, X;
long long S;
inline void CodeExpert(){
fscanf(fin, "%d %d", &N, &K);
for(int i = 1; i <= K; i ++){
fscanf(fin, "%d", &X);
while(!Deq.empty() && Deq.back().s > X)
Deq.pop_back();
Deq.push_back(make_pair(i, X));
}
S = Deq.front().s;
for(int i = K+1; i <= N; i ++){
fscanf(fin, "%d", &X);
if(Deq.front().f == i-K)
Deq.pop_front();
while(!Deq.empty() && Deq.back().s > X)
Deq.pop_back();
Deq.push_back(make_pair(i, X));
S += Deq.front().s;
}
fprintf(fout, "%lld", S);
return;
}
int main(){
CodeExpert();
return 0;
}