Cod sursa(job #1990238)

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

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