Pagini recente » Cod sursa (job #3196969) | Cod sursa (job #2115441) | Cod sursa (job #3286299) | Cod sursa (job #3238268) | Cod sursa (job #1442538)
#include <fstream>
#include <queue>
#include <vector>
#include <functional>
#include <deque>
using namespace std;
static const int MAXN = 5000009;
int v[MAXN];
int main()
{
int n, k;
ifstream f("deque.in");
f >> n >> k;
for(int i = 0; i < n; i++)
{
f >> v[i];
}
f.close();
long long sum = 0;
deque<int> q;
for(int i = 0; i < n; i++)
{
while(!q.empty() && v[q.back()] > v[i])
{
q.pop_back();
}
q.push_back(i);
if(i >= k - 1)
{
if(q.front() < i - k + 1)
{
q.pop_front();
}
sum += v[q.front()];
}
}
ofstream g("deque.out");
g << sum << '\n';
return 0;
}