Cod sursa(job #2269829)

Utilizator Roby54151Robert Cojocariu Roby54151 Data 26 octombrie 2018 17:22:28
Problema Deque Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <deque>
#include <algorithm>
#include <climits>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
long long n, k, suma, a[5000001];
deque <long long> q;
int main()
{
    f>>n>>k;
    for(int i=0; i<n; i++)
        f>>a[i];
    for(int i=0; i<n; i++)
    {
        while(!q.empty() && a[i]<=a[q.back()])
            q.pop_back();
        q.push_back(i);
		if(q.front()==i-k-1)
            q.pop_front();
        if(i>=k-1)
        {
            while(!q.empty() && i-q.front()>=k)
                q.pop_front();
            suma+=a[q.front()];
        }
    }
    g<<suma;
    return 0;
}