Pagini recente » Cod sursa (job #1831306) | Cod sursa (job #1138700) | Cod sursa (job #1997957) | Cod sursa (job #2352938) | Cod sursa (job #380400)
Cod sursa(job #380400)
#include <fstream>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
int dq[5000001];
int v[5000001];
int n,k,i,st=1,dr=0;
long long s=0;
inline void stanga(int i){
if(dq[st]==i-k){
st++;
}
}
void dreapta(int i){
while ( (st<=dr) && ( v[i]<=v[dq[dr]])){
dr--;
}
dq[++dr]=i;
}
int main(){
in>>n>>k;
st=1; dr=0;
for(i=1;i<=n;i++){
in>>v[i];
}
for(i=1;i<=n;i++){
stanga(i);
dreapta(i);
if(i>=k){
s=s+v[dq[st]];
}
}
out<<s;
return 0;
}