Cod sursa(job #2036247)

Utilizator segal_ftw3Luncanu Sergiu segal_ftw3 Data 10 octombrie 2017 15:44:25
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>
#include <deque>
#define MAXN 5000041
using namespace std;
ifstream f("deque.in"); ofstream g("deque.out");
int n,k,a[MAXN];
long long s=0;
deque <int> D;
int main()
{   f>>n>>k;
    for(int i=1; i<=n; i++) f>>a[i];
    for(int i=1; i<=n; i++)
        if(i<k)
        {   while(!D.empty()&& a[i]<=a[D.back()]) D.pop_back();
            D.push_back(i);
        }
        else
        {   while(!D.empty()&&a[i]<=a[D.back()])  D.pop_back();
            D.push_back(i);
            if(D.front()<=i-k) D.pop_front();
            s+=a[D.front()];
        }
    g<<s;
    return 0;
}