Cod sursa(job #2286292)

Utilizator stan_flaviusStan Flavius Stefan stan_flavius Data 20 noiembrie 2018 02:42:35
Problema Deque Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
#include <deque>

using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");

int n,k;
deque<int> D;
deque<int> Dp;
long long s;

int main()
{ fin>>n>>k;
  int i;
  int val;
  fin>>val;
  D.push_front(val);
  Dp.push_front(1);
  for(i=2; i<=n; i++)
     { fin>>val;
       if(i>k) {s+=D.front(); //fout<<D.front()<<" ";
               }
       while(val<=D.back()) {D.pop_back(); Dp.pop_back();}
       D.push_back(val); Dp.push_back(i);
       if(Dp.front()<=i-k) {D.pop_front(); Dp.pop_front();}
     }
     s+=D.front(); //fout<<D.front()<<" ";
  fout<<s;
    return 0;
}