Pagini recente » Cod sursa (job #127658) | Cod sursa (job #2802273) | Cod sursa (job #1401977) | Cod sursa (job #2492066) | Cod sursa (job #2131495)
#include <iostream>
#include <fstream>
#include <deque>
#define nmax 2500001
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
deque<long long int> a,poz ;
long long int n,k;
void citire() {
f>>n>>k;
}
void Adauga(long long int val, long long int pos) {
bool da=true;
while (!a.empty() && da) {
if (a[a.size()-1]>val ) {
a.pop_back();
poz.pop_back();
}
else {
da=false;
}
}
a.push_back(val);
poz.push_back(pos);
}
void rez() {
long long int x=0;
f>>x;
a.push_back(x);
poz.push_back(1);
long long int Suma=0;
for (int i=2;i<=n;i++) {
f>>x;
Adauga(x,i);
if (i>=k) {
Suma=Suma+a[0];
//cout<<a[0]<<"\n";
if (i-k+1>=poz[0]) {
a.pop_front();
poz.pop_front();
}
}
}
g<<Suma;
}
int main() {
citire();
rez();
return 0;
}