#include<stdio.h>
#include<algorithm>
using namespace std;
int L[51515], R[51515],a[51515], n;
int max(int a, int b) { if (a < b)return b; return a; }
bool f(int x) {
int s, e = 0;
for (s = 0; s < n; s++) {
while (e + 1 < n&&a[e + 1] <= a[s] + 2 * x)e++;
if (max(L[s], R[e]) <= x - 2)return 1;
}
return 0;
}
int main() {
int i, j, p;
scanf("%d", &n);
for (i = 0; i < n; i++) scanf("%d", &a[i]), a[i] *= 2;
sort(a, a + n);
for (i = 1, p = 0; i < n; i++) {
while (p + 1 < i&&max(L[p] + 2, a[i] - a[p]) > max(L[p + 1] + 2, a[i] - a[p + 1]))p++;
L[i] = max(L[p] + 2, a[i] - a[p]);
}
for (i = n - 2, p = n - 1; i >= 0; i--) {
while (p - 1 > i&&max(R[p] + 2, a[p] - a[i]) > max(R[p - 1] + 2, a[p - 1] - a[i]))p--;
R[i] = max(R[p] + 2, a[p] - a[i]);
}
int s = 0, e = 1e9, ans;
while (s <= e) {
int m = (s + e) / 2;
if (f(m))ans = m, e = m - 1;
else s = m + 1;
}
printf("%d.%d", ans / 2, ans % 2 * 5);
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgTFs1MTUxNV0sIFJbNTE1MTVdLGFbNTE1MTVdLCBuOwppbnQgbWF4KGludCBhLCBpbnQgYikgeyBpZiAoYSA8IGIpcmV0dXJuIGI7IHJldHVybiBhOyB9CmJvb2wgZihpbnQgeCkgewoJaW50IHMsIGUgPSAwOwoJZm9yIChzID0gMDsgcyA8IG47IHMrKykgewoJCXdoaWxlIChlICsgMSA8IG4mJmFbZSArIDFdIDw9IGFbc10gKyAyICogeCllKys7CgkJaWYgKG1heChMW3NdLCBSW2VdKSA8PSB4IC0gMilyZXR1cm4gMTsKCX0KCXJldHVybiAwOwp9CmludCBtYWluKCkgewoJaW50IGksIGosIHA7CglzY2FuZigiJWQiLCAmbik7Cglmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSBzY2FuZigiJWQiLCAmYVtpXSksIGFbaV0gKj0gMjsKCXNvcnQoYSwgYSArIG4pOwoJZm9yIChpID0gMSwgcCA9IDA7IGkgPCBuOyBpKyspIHsKCQl3aGlsZSAocCArIDEgPCBpJiZtYXgoTFtwXSArIDIsIGFbaV0gLSBhW3BdKSA+IG1heChMW3AgKyAxXSArIDIsIGFbaV0gLSBhW3AgKyAxXSkpcCsrOwoJCUxbaV0gPSBtYXgoTFtwXSArIDIsIGFbaV0gLSBhW3BdKTsKCX0KCWZvciAoaSA9IG4gLSAyLCBwID0gbiAtIDE7IGkgPj0gMDsgaS0tKSB7CgkJd2hpbGUgKHAgLSAxID4gaSYmbWF4KFJbcF0gKyAyLCBhW3BdIC0gYVtpXSkgPiBtYXgoUltwIC0gMV0gKyAyLCBhW3AgLSAxXSAtIGFbaV0pKXAtLTsKCQlSW2ldID0gbWF4KFJbcF0gKyAyLCBhW3BdIC0gYVtpXSk7Cgl9CglpbnQgcyA9IDAsIGUgPSAxZTksIGFuczsKCXdoaWxlIChzIDw9IGUpIHsKCQlpbnQgbSA9IChzICsgZSkgLyAyOwoJCWlmIChmKG0pKWFucyA9IG0sIGUgPSBtIC0gMTsKCQllbHNlIHMgPSBtICsgMTsKCX0KCXByaW50ZigiJWQuJWQiLCBhbnMgLyAyLCBhbnMgJSAyICogNSk7CglyZXR1cm4gMDsKfQ==