Pagini recente » Cod sursa (job #3354518) | Cod sursa (job #3353679) | Cod sursa (job #3323261) | Cod sursa (job #3314077) | Cod sursa (job #3346342)
#include <iostream>
#include <deque>
#include <vector>
#include <fstream>
int main()
{
std::ifstream fin("deque.in");
std::ofstream fout("deque.out");
int n, k, i, x;
long long suma = 0;
std::deque<std::pair<int, int>> q;
std::vector<int> v;
fin >> n >> k;
for(i=0;i<n;i++)
{
fin >> x;
if(q.empty()) q.push_back({x, i});
else
{
while(!q.empty() && q.back().first >= x)
q.pop_back();
while(i >= k && !q.empty() && q.front().second < i - k + 1)
q.pop_front();
q.push_back({x, i});
}
if(i >= k - 1) suma += q.front().first;
}
fout << suma;
fin.close();
fout.close();
return 0;
}