Pagini recente » Cod sursa (job #2297438) | Cod sursa (job #30499) | Cod sursa (job #2488364) | Cod sursa (job #1620869) | Cod sursa (job #2899197)
#include <fstream>
#include <deque>
#define MAX 100010
using namespace std;
deque<int> deck;
void push(int x){
while(!deck.empty() && deck.back() > x){
deck.pop_back();
}
deck.push_back(x);
}
int main(){
ifstream fin;
ofstream fout;
fin.open("deque.in");
fout.open("deque.out");
int k, n, q, a, b;
int v[MAX];
long long sum = 0;
fin >> n >> k;
for(int i=0; i < k; ++i){
fin >> v[i];
push(v[i]);
}
for(int i=k; i < n; ++i){
fin >> v[i];
sum += deck.front();
if(v[i - k] == deck.front())
deck.pop_front();
push(v[i]);
}
fout << sum + deck.front();
}