Cod sursa(job #1990242)

Utilizator b10nd3Oana Mancu b10nd3 Data 10 iunie 2017 22:59:25
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include<fstream>
#include<deque>
using namespace std;

struct el{
  int val, poz;
  el(int _val=0, int _poz=0){
     val=_val; poz=_poz;
  }
};


int main(){
ifstream in("deque.in"); ofstream out("deque.out");
int n,k,i,x;
long long sum=0;
deque<el> dq;
in>>n>>k; 
for(i=0;i<n;++i){
   in>>x;
   while(!dq.empty() && x<=dq.back().val) dq.pop_back();
   dq.push_back(el(x,i));
   if(dq.front().poz<=i-k) dq.pop_front();
   if(i>=k-1) sum+=dq.front().val;  
}
out<<sum;

in.close(); out.close();
return 0;
}