fun main() { val t = readLine()!!.toInt() for (i in 1..t) { print("Case #$i: ") solve() } } fun solve() { val n = readLine()!!.toInt() val a = readLine()!!.split(' ').map(String::toLong).toLongArray() val csa = LongArray(a.size + 1) for (i in 1..a.size) csa[i] = csa[i - 1] + a[i - 1] val (la, ra, lb, rb) = readLine()!!.split(' ').map { it.toInt() - 1 } fun calc(a: Int, b: Int): Long { return if (a < b) { csa[(a + b) / 2 + 1] } else { csa.last() - csa[(a + b - 1) / 2 + 1] } } var ans = 0L for (fm in la..ra) { var minA = Long.MAX_VALUE if (fm - 1 in lb..rb) minA = minOf(minA, calc(fm, fm - 1)) if (fm + 1 in lb..rb) minA = minOf(minA, calc(fm, fm + 1)) if (fm != lb) minA = minOf(minA, calc(fm, lb)) if (fm != rb) minA = minOf(minA, calc(fm, rb)) ans = maxOf(ans, minA) } println(ans) }