Pagini recente » Cod sursa (job #1519818) | Concursuri organizate de infoarena | Cod sursa (job #726705) | Cod sursa (job #2488543) | Cod sursa (job #2131490)
#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) {
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() {
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;
}