Cod sursa(job #2077136)

Utilizator Andrei243Nitu Mandel Andrei Andrei243 Data 27 noiembrie 2017 19:16:02
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
#include <deque>
#include <vector>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");


int rezolvare(int n, int k, deque <int> &coada, vector <int> &v){
long long suma=0;
for(int i=1;i<=k;i++){

while(coada.size()&&v[i]<=v[coada.front()]){
coada.pop_front();


}
coada.push_front(i);

}
suma+=v[coada.back()];
for(int i=k+1;i<=n;i++){
while(coada.size()&&v[i]<=v[coada.front()]){
coada.pop_front();

}
coada.push_front(i);
if(coada.back()<=i-k){
coada.pop_back();
}
suma+=v[coada.back()];
}



return suma;
}


int main()
{int n,k;
in>>n>>k;

vector <int> v(n+1);
for(int i=1;i<=n;i++){
in>>v[i];

}
deque <int> coada;
  out<<rezolvare(n,k,coada,v);

    return 0;
}