Cod sursa(job #1094062)

Utilizator vyrtusRadu Criuleni vyrtus Data 28 ianuarie 2014 21:13:59
Problema Combinari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <fstream>
#include <deque>
#include <iostream>
#include <limits>

using namespace std;

ifstream f("deque.in");
ofstream g("deque.out");

long long sum,n,k;
deque <int> coada;
int a[5000001];

int main()
{
      f >> n >> k;
        for (int i=1;i<=n;i++)
            f >> a[i];

    for (int i=1;i<=n;i++)
    {
        while (!coada.empty() && a[i]<a[coada.back()])
            coada.pop_back();

       coada.push_back(i);

     if (coada.front() == (i-k)) coada.pop_front();

     if (i >= k) sum += a[coada.front()];
    }

 g << sum ;

    return 0;
}