Cod sursa(job #3274493)

Utilizator SimifilLavrente Simion Simifil Data 6 februarie 2025 22:19:55
Problema Deque Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#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;
}