Pagini recente » civilizatie | Cod sursa (job #411832) | Cod sursa (job #141649) | Cod sursa (job #2739897) | Cod sursa (job #2029089)
#include <fstream>
#include <deque>
using namespace std;
deque <pair <int, int>> coada;
int v[5000001];
ifstream fin ("deque.in");
ofstream fout ("deque.out");
int main()
{
int n, k, cnt = 0;
long long suma = 0;
fin>>n>>k;
for ( int i = 1; i <= n; ++i )
fin>>v[i];
for ( int i = 1; i <= n; ++i )
{
while ( coada.empty() == 0 && coada.back().first > v[i])
coada.pop_back();
while ( coada.front().second <= i-k && coada.empty() == 0 )
coada.pop_front();
coada.push_back({v[i], i});
if ( i >= k )
suma += coada.front().first;
}
fout<<suma;
}