Cod sursa(job #1588642)

Utilizator CodrinsahCotarlan Codrin Codrinsah Data 3 februarie 2016 13:45:30
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <fstream>
#include <deque>
using namespace std;
ifstream fi ("deque.in");
ofstream fo ("deque.out");
int n,l,s,k,i,a[5000007];
deque<int>dq;
deque<int>::iterator it;
int main()
{
    fi>>n>>k;
    for (i=1;i<=n;i++) fi>>a[i];
    for (i=1;i<=n;i++)
    {
      while (!dq.empty())
        if (dq.back()+k-1<i) dq.pop_back();
        else break;
      while (!dq.empty())
        if (a[i]<a[dq.front()]) dq.pop_front();
        else break;
      dq.push_front(i);
      if (i>=k) s=s+a[dq.back()];
    }
    fo<<s;
    return 0;
}