#include <bits/stdc++.h>
using namespace std;
const int N = 2e5;
long long n, x;
long long a[N];
bool Can(long long dis) {
  long long last = 0;
  int used = 0;
  for (long long i = 0; i < n; i++) {
    if (a[i] > last) {
      last = a[i] + (2 * dis);
      used++;
    }
    if (used > 3) return 0;
  }
  return 1;
}
int main() {
  cin >> n;
  for (long long i = 0; i < n; i++) {
    cin >> x;
    a[i] = 2 * x;
  }
  sort(a, a + n);
  long long high, mid, low;
  low = 0;
  high = 2e9;
  while (high - low > 0) {
    mid = (high + low) / 2;
    if (Can(mid))
      high = mid;
    else
      low = mid + 1;
  }
  printf("%.6lf \n", double(low) / 2);
  double u;
  int g = 0;
  long long l = 0;
  long long o = 0;
  while (o < n) {
    if (a[o] > l) {
      l = a[o] + (2 * low);
      u = (a[o] + low);
      printf("%.6lf ", double(u) / 2);
      g++;
    }
    o++;
  }
  while (g < 3) {
    cout << 1 << endl;
    g++;
  }
  return 0;
}
