Pagini recente » Cod sursa (job #2532678) | Cod sursa (job #70480) | Cod sursa (job #3231628) | Cod sursa (job #2459601) | Cod sursa (job #3163035)
#include <fstream>
#include <math.h>
#define DIM 5000001
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
unsigned int n, k;
long long sum;
int r[DIM];
void build(int power) {
for (unsigned int p = 1; p <= power; p++) {
for (unsigned int i = 1; i <= n; i++) {
unsigned int j = i + (1 << (p - 1));
if (j <= n) {
r[i] = min(r[i], r[j]);
}
else
break;
}
}
}
int main()
{
fin >> n >> k;
unsigned int kPower = (int)log2(k);
for (unsigned int i = 1; i <= n; i++) {
fin >> r[i];
}
build(kPower);
for (unsigned int st = 1, dr = k; dr <= n; st++, dr++) {
sum += min(r[st], r[dr - (1 << kPower) + 1]);
}
fout << sum;
}