Pagini recente » Cod sursa (job #2814539) | Cod sursa (job #1218589) | Cod sursa (job #2778144) | Cod sursa (job #1254681) | Cod sursa (job #2668880)
#include <fstream>
using namespace std;
const int NMAX = 5e6;
int dq[NMAX + 1], v[NMAX + 1];
ifstream fin("deque.in");
ofstream fout("deque.out");
int main() {
int n, k, i, lung, st, dr;
long long sum = 0;
fin >> n >> k;
lung = st = 0;
dr = - 1;
sum = 0;
for ( i = 0; i < n; i++ ) {
fin >> v[i];
while ( lung > 0 && v[i] <= v[dq[dr]] )
dr--, lung--;
dq[++dr] = i; lung++;
if ( i - dq[st] == k )
st++, lung--;
if ( i >= k - 1 )
sum += (long long) v[dq[st]];
// fout << v[dq[st]] << '\n';
}
fout << sum;
return 0;
}