Pagini recente » Cod sursa (job #1350753) | Cod sursa (job #410532) | Cod sursa (job #1332960) | Cod sursa (job #1420871) | Cod sursa (job #2964455)
#include <bits/stdc++.h>
#define FOR(WHATEVER) for(int i = 1; i <= WHATEVER; ++ i)
using namespace std;
/// INPUT / OUTPUT
const string problem = "deque";
ifstream fin(problem + ".in");
ofstream fout(problem + ".out");
/// GLOBAL VARIABLES
const int NMAX = 5e6+6, MOD = 1e9 + 7, INF = 1e9;
int n, k, ans;
int arr[NMAX];
deque<int>dq;
/// SOLUTION
inline void solution()
{
for(int i = 1; i <= n; ++ i)
{
while(!dq.empty() && arr[dq.back()] >= arr[i])
dq.pop_back();
dq.push_back(i);
if(dq.front() == i - k)
dq.pop_front();
if(i >= k)
ans+=arr[dq.front()];
}
fout << ans;
}
/// READING THE INPUT
int main()
{
ios::sync_with_stdio(false);
fin.tie(NULL);
fout.tie(NULL);
fin >> n >> k;
for(int i = 1; i <= n; ++ i)
fin >> arr[i];
solution();
}