Pagini recente » Cod sursa (job #48126) | Cod sursa (job #1193880) | Cod sursa (job #2730354) | Cod sursa (job #520601) | Cod sursa (job #2131486)
#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,v[2*nmax];
void citire() {
f>>n>>k;
for (int i=1;i<=n;i++) {
f>>v[i];
}
}
void Adauga(long long int val, long long int pos) {
while (a[a.size()-1]>val && !a.empty()) {
a.pop_back();
poz.pop_back();
}
a.push_back(val);
poz.push_back(pos);
}
void rez() {
a.push_back(v[1]);
poz.push_back(1);
long long int Suma=0;
for (int i=2;i<=n;i++) {
Adauga(v[i],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;
}