Pagini recente » Cod sursa (job #2382916) | Cod sursa (job #2091550) | Cod sursa (job #148182) | Cod sursa (job #3000709) | Cod sursa (job #963322)
Cod sursa(job #963322)
#include<fstream>
using namespace std;
ifstream in ( "deque.in");
ofstream out( "deque.out");
int v[5000002], d[5000002], k, st=1, dr, n;
long long s;
void stanga ( int i ){
if( i-d[st] == k ){
st++;
}
}
void dreapta ( int i ){
while ( st<=dr && v[i]<=v[d[dr]]){
dr--;
}
}
int main(){
in >> n >> k;
for( int i=1 ; i<=n ; i++){
in >> v[i];
}
int i;
for( i=1 ; i<=k; i++) {
dreapta(i);
d[++dr]=i;
}
s = v[d[st]];
for( i=k+1; i<=n; i++){
stanga(i);
dreapta(i);
d[++dr]=i;
s+= v[d[st]];
}
out << s ;
return 0;
}