Cod sursa(job #1566691)

Utilizator fromzerotoheroFROM ZERO fromzerotohero Data 12 ianuarie 2016 14:48:03
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <iostream>
#include <fstream>
#include <deque>

#define nmax 5000001

using namespace std;

int n, k;
int rez;
int A[nmax];

deque <int> D;

int main()
{
    
    ifstream fi("deque.in");
    ofstream fo("deque.out");
    
    fi >> n >> k;
    
    for (int i = 1; i <= n; i++)
    {
        
        fi >> A[i];
        
        while (!D.empty() && A[i] <= A[D.back()])
            D.pop_back();
        
        D.push_back(i);
        
        if (i < k)
            continue;
        
        if (i - D.front() >= k)
            D.pop_front();
        
        rez += A[D.front()];
        
    }
    
    fo << rez << "\n";
    
    fi.close();
    fo.close();
    
    return 0;
}