Pagini recente » Cod sursa (job #238197) | Cod sursa (job #2916) | Cod sursa (job #2044514) | Cod sursa (job #1536314) | Cod sursa (job #963315)
Cod sursa(job #963315)
#include<fstream>
using namespace std;
fstream in ( "deque.in ", ios::in ),
out( "deque.out", ios::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; i<=n; i++){
stanga(i);
dreapta(i);
d[++dr]=i;
s+= v[d[st]];
}
out<<s<<'\n';
return 0;
}