fun main(args: Array<String>) {
    val n = readLine()?.toInt() ?: return
    val aList = (0..1).map {
        readLine()?.split(" ")?.map { it.toInt() }!!
    }

    // まずは0行目1行目それぞれについて、
    // 左から右への各項までの累積和を持った配列を作る
    val accList = mutableListOf<MutableList<Int>>().apply {
        add(mutableListOf<Int>().apply {
            for (i in 0..n) add(0)
        })
        add(mutableListOf<Int>().apply {
            for (i in 0..n) add(0)
        })
        this[0][0] = aList[0][0]
        this[1][0] = aList[1][0]
    }
    for (i in 1 until n) {
        accList[0][i] = accList[0][i - 1] + aList[0][i]
        accList[1][i] = accList[1][i - 1] + aList[1][i]
    }

    // あとは貪欲にすべてのパターン(100通り、どこで下に降りるか）を試行する
    var maxCandies = 0
    for (i in 0 until n) {
        val leaveCandies = if (i == 0) 0 else accList[1][i - 1]
        val candies = accList[0][i] + (accList[1][n - 1] - leaveCandies)
        if (candies > maxCandies) {
            maxCandies = candies
        }
    }
    println(maxCandies)
}