Pagini recente » Cod sursa (job #827219) | Cod sursa (job #1182771) | Cod sursa (job #989761) | Cod sursa (job #2246546) | Cod sursa (job #3274493)
#include <bits/stdc++.h>
#include <deque>
using namespace std;
ifstream f ("deque.in");
ofstream g ("deque.out");
int main() {
long long n, k, sum = 0;
f >> n >> k;
deque<pair<long long, long long>> v;
for( int i = 1; i < k; ++i )
{
pair<long long, long long> c;
f >> c.first;
c.second = i;
while( v.empty() == false && v.front().second < i - k + 1 )
v.pop_front();
while( v.empty() == false && v.back().first > c.first )
v.pop_back();
v.push_back( c );
}
for( int i = k; i <= n; ++i )
{
pair<long long, long long> c;
cin >> c.first;
c.second = i;
while( v.empty() == false && v.front().second < i - k + 1 )
v.pop_front();
while( v.empty() == false && v.back().first > c.first )
v.pop_back();
v.push_back( c );
//cout << v.front().first << " ";
sum += v.front().first;
}
g << sum;
}