#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long n;
  cin >> n;
  vector<long long> x(n);
  for (long long i = 0; i < n; i++) cin >> x[i];
  sort(x.begin(), x.end());
  long long l = 0, r = 2e9;
  long double ans;
  while (l <= r) {
    long long mid = (l + r) / 2;
    auto it1 = upper_bound(x.begin(), x.end(), mid + x[0]);
    if (it1 != x.end()) {
      auto it2 = upper_bound(x.begin(), x.end(), mid + *it1);
      if (it2 != x.end()) {
        auto it3 = upper_bound(x.begin(), x.end(), mid + *it2);
        if (it3 != x.end()) {
          l = mid + 1;
        } else {
          ans = mid;
          r = mid - 1;
        }
      } else {
        ans = mid;
        r = mid - 1;
      }
    } else {
      ans = mid;
      r = mid - 1;
    }
  }
  printf("%0.15Lf\n", ans / 2);
  printf("%0.15Lf ", x[0] + ans / 2);
  auto it1 = upper_bound(x.begin(), x.end(), x[0] + (long long)ans);
  if (it1 != x.end()) {
    printf("%0.15Lf ", *it1 + ans / 2);
    auto it2 = upper_bound(x.begin(), x.end(), (long long)ans + *it1);
    if (it2 != x.end()) {
      printf("%0.15Lf ", *it2 + ans / 2);
    } else {
      printf("%0.15Lf ", x[0] + ans / 2);
    }
  } else {
    printf("%0.15Lf ", x[0] + ans / 2);
    printf("%0.15Lf ", x[0] + ans / 2);
  }
  return 0;
}
