Pagini recente » Profil mariejeanne | Cod sursa (job #3132755) | Cod sursa (job #2086430) | Cod sursa (job #1091704) | Cod sursa (job #905940)
Cod sursa(job #905940)
#include <fstream>
#include <deque>
#include <vector>
#include <iostream>
using std::vector;
using std::deque;
using std::cout;
std::ifstream in("deque.in");
std::ofstream out("deque.out");
deque<long> a;
vector<long> V;
long N,k;
long long sum = 0;
int main()
{
in >> N >> k;
V.reserve(N + 1);
V.push_back(0);
for (int i = 1; i <= N; ++i){
long x; in >> x;
V.push_back(x);
}
for (int i = 1; i <= N; ++i)
{
while ( !a.empty() && V[i] < a.back() )
a.pop_back();
a.push_back( V[i] );
if ( i > k && a.front() == V[i - k] )
a.pop_front();
if ( i >= k ) sum += a.front();
}
out << sum;
in.close();
out.close();
return 0;
}