Cod sursa(job #2077142)

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

int n,k;
long long rezolvare(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()
{
in>>n>>k;
vector <int> v(n+1);

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

}

  out<<rezolvare(v)<<'\n';

    return 0;
}