Pagini recente » Cod sursa (job #2763660) | Cod sursa (job #1200777) | Cod sursa (job #317011) | Cod sursa (job #2505406) | Cod sursa (job #1805062)
#include <fstream>
#include <deque>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
#define NMAX 5000010
deque<int>C;
int n, k, a[NMAX];
long long S;
void Insert(int x);
void Delete(int i);
int main()
{
int i;
f>>n>>k;
for(i = 1; i <= k; i++) {
f>>a[i];
Insert(i);
}
S += a[C.front()];
for(i = k + 1; i <= n; i++) {
f>>a[i];
Delete(i);
Insert(i);
S += a[C.front()];
}
g<<S<<'\n';
return 0;
}
void Insert(int x) {
while(!C.empty() && a[x] <= a[C.back()])
C.pop_back();
C.push_back(x);
}
void Delete(int i) {
while(!C.empty() && C.front() <= i - k )
C.pop_front();
}