//package misc.ukiepc2025 fun main() { readln() val a = readInts().zipWithNext { a, b -> b - a } val maxLeft = a.scan(0, ::maxOf) val maxRight = a.reversed().scan(0, ::maxOf).reversed() val ans = (0..a.size - 2).minOf { i -> maxOf(maxLeft[i], a[i] + a[i + 1], maxRight[i + 2]) } println(ans) } private fun readStrings() = readln().split(" ") private fun readInts() = readStrings().map { it.toInt() }