Pagini recente » Cod sursa (job #133649) | Cod sursa (job #2944686) | Cod sursa (job #1023517) | Cod sursa (job #1317382) | Cod sursa (job #2884738)
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
pair<long,long> q[5000000];
long long n,l,sum,x,size;
void push_back(pair<long long, long long> tmp){
q[size] = tmp;
size++;
}
void pop_back(){
size--;
}
pair<long long, long long> back(){
return q[size-1];
}
bool empty(){
if(size == 0)
return true;
return false;
}
pair<long long, long long> front(){
return q[0];
}
void pop_front(){
for(int i = 0; i < size; ++i){
q[i] = q[i+1];
}
size--;
}
int main(){
fin >> n;
fin >> l;
for(int i = 1; i <= n; ++i){
fin >> x;
while(empty() == false && back().first >= x)
pop_back();
push_back({x,i});
if(i >= l){
sum += front().first;
}
if(i >= front().second + l - 1){
pop_front();
}
}
fout << sum;
}