#include <iostream>
using namespace std;
int n;
int a[1004];
int l = 1001, r = 0;
bool check(int res) {
int cnt = 0;
for (int i = 0; i < n; i++) {
if (a[i+1] - a[i] > res) {
if (a[i+2] - a[i] <= res) {
if (cnt) return false;
else cnt++, i++;
}
else return false;
}
}
return true;
}
int main() {
cin >> n;
for (int i = 1; i <= n; ++i) {
cin >> a[i];
r = max(r, a[i]);
l = min(l, a[i]);
}
a[0] = a[2];
a[n+1] = a[n-1];
while (l < r) {
int mid = (l + r) >> 1;
if (check(mid)) r = mid;
else l = mid + 1;
}
cout << l << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG47CmludCBhWzEwMDRdOwppbnQgbCA9IDEwMDEsIHIgPSAwOwoKYm9vbCBjaGVjayhpbnQgcmVzKSB7CglpbnQgY250ID0gMDsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CgkJaWYgKGFbaSsxXSAtIGFbaV0gPiByZXMpIHsKCQkJaWYgKGFbaSsyXSAtIGFbaV0gPD0gcmVzKSB7CgkJCQlpZiAoY250KSByZXR1cm4gZmFsc2U7CgkJCQllbHNlIGNudCsrLCBpKys7CgkJCX0KCQkJZWxzZSByZXR1cm4gZmFsc2U7CgkJfQoJfQoJcmV0dXJuIHRydWU7Cn0KCmludCBtYWluKCkgewoJY2luID4+IG47Cglmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpIHsKCQljaW4gPj4gYVtpXTsKCQlyID0gbWF4KHIsIGFbaV0pOwoJCWwgPSBtaW4obCwgYVtpXSk7Cgl9CglhWzBdID0gYVsyXTsKCWFbbisxXSA9IGFbbi0xXTsKCXdoaWxlIChsIDwgcikgewoJCWludCBtaWQgPSAobCArIHIpID4+IDE7CgkJaWYgKGNoZWNrKG1pZCkpIHIgPSBtaWQ7CgkJZWxzZSBsID0gbWlkICsgMTsKCX0KCWNvdXQgPDwgbCA8PCBlbmRsOwoJCn0=