#include <bits/stdc++.h>
using namespace std;
int a[200001];
long long psum[200001];
long double b[200001], bsum[200001], bmp[200001];
long double f[2][200001];
int q[200001], h, t;
int main() {
  int n, k;
  scanf("%d%d", &n, &k);
  for (int i = 1; i <= n; ++i) scanf("%d", &a[i]);
  for (int i = 1; i <= n; ++i) psum[i] = psum[i - 1] + a[i];
  for (int i = 1; i <= n; ++i) b[i] = 1.0 / a[i];
  for (int i = 1; i <= n; ++i) bsum[i] = bsum[i - 1] + b[i];
  for (int i = 1; i <= n; ++i) bmp[i] = b[i] * psum[i];
  for (int i = 1; i <= n; ++i) bmp[i] += bmp[i - 1];
  for (int j = 0; j != 200001; ++j) f[0][j] = 1000000000000000000LL;
  f[0][0] = 0;
  for (int k0 = 1; k0 <= k; ++k0) {
    q[h = t = 1] = 0;
    for (int i = 0; i != 200001; ++i) f[k0 & 1][i] = 1000000000000000000LL;
    for (int i = 1; i <= n; ++i) {
      while (h < t && (f[(k0 - 1) & 1][q[h + 1]] +
                       bsum[q[h + 1]] * psum[q[h + 1]] - bmp[q[h + 1]]) -
                              (f[(k0 - 1) & 1][q[h]] + bsum[q[h]] * psum[q[h]] -
                               bmp[q[h]]) <=
                          bsum[i] * ((psum[q[h + 1]]) - (psum[q[h]])))
        ++h;
      f[k0 & 1][i] = f[(k0 - 1) & 1][q[h]] -
                     (bsum[i] - bsum[q[h]]) * psum[q[h]] + bmp[i] - bmp[q[h]];
      while (
          h < t &&
          ((f[(k0 - 1) & 1][i] + bsum[i] * psum[i] - bmp[i]) -
           (f[(k0 - 1) & 1][q[t]] + bsum[q[t]] * psum[q[t]] - bmp[q[t]])) *
                  ((psum[q[t]]) - (psum[q[t - 1]])) <=
              ((f[(k0 - 1) & 1][q[t]] + bsum[q[t]] * psum[q[t]] - bmp[q[t]]) -
               (f[(k0 - 1) & 1][q[t - 1]] + bsum[q[t - 1]] * psum[q[t - 1]] -
                bmp[q[t - 1]])) *
                  ((psum[i]) - (psum[q[t]])))
        --t;
      q[++t] = i;
    }
  }
  printf("%.12lf\n", (double)f[k & 1][n]);
  return 0;
}
