n = int(eval(input()))

a = list(map(int, input().split()))  # 初期のモンスターの数

b = list(map(int, input().split()))  # 各勇者が倒せるモンスターの数

num = 0

for i in range(n):

    # 倒したモンスターの数をnumに追加

    num += min(a[i], b[i])

    if b[i] - a[i] > 0:  # モンスターが残っていないとき

        # 隣町の勇者が倒せるモンスターの数か，隣町のモンスター全てか．

        num += min(b[i] - a[i], a[i + 1])

        # 隣町のモンスター数は残っているか，全滅しているか．

        a[i + 1] = max(a[i+1]-(b[i] - a[i]), 0)

print(num)
def main():

    n = int(eval(input()))

    A = list(map(int, input().split()))

    Ai = sum(A)

    B = list(map(int, input().split()))

    for i in range(n):

        b = B[i]

        if b > A[i]:

            b -= A[i]

            A[i] = 0

            if b > A[i + 1]:

                b -= A[i + 1]

                A[i + 1] = 0

            else:

                A[i + 1] -= b

        else:

            A[i] -= b

    Af = sum(A)

    print((Ai - Af))





if __name__ == '__main__':

    main()
n = int(eval(input()))
a = list(map(int, input().split()))  # 初期のモンスターの数
b = list(map(int, input().split()))  # 各勇者が倒せるモンスターの数
num = 0
for i in range(n):
    # 倒したモンスターの数をnumに追加
    num += min(a[i], b[i])
    if b[i] - a[i] > 0:  # モンスターが残っていないとき
        # 隣町の勇者が倒せるモンスターの数か，隣町のモンスター全てか．
        num += min(b[i] - a[i], a[i + 1])
        # 隣町のモンスター数は残っているか，全滅しているか．
        a[i + 1] = max(a[i + 1] - (b[i] - a[i]), 0)
print(num)

def main():
    n = int(eval(input()))
    A = list(map(int, input().split()))
    Ai = sum(A)
    B = list(map(int, input().split()))
    for i in range(n):
        b = B[i]
        if b > A[i]:
            b -= A[i]
            A[i] = 0
            if b > A[i + 1]:
                b -= A[i + 1]
                A[i + 1] = 0
            else:
                A[i + 1] -= b
        else:
            A[i] -= b
    Af = sum(A)
    print((Ai - Af))


if __name__ == "__main__":
    main()

-n = int(eval(input())) -a = list(map(int, input().split()))  # 初期のモンスターの数 -b = list(map(int, input().split()))  # 各勇者が倒せるモンスターの数 -num = 0 -for i in range(n): -    # 倒したモンスターの数をnumに追加 -    num += min(a[i], b[i]) -    if b[i] - a[i] > 0:  # モンスターが残っていないとき -        # 隣町の勇者が倒せるモンスターの数か，隣町のモンスター全てか． -        num += min(b[i] - a[i], a[i + 1]) -        # 隣町のモンスター数は残っているか，全滅しているか． -        a[i + 1] = max(a[i + 1] - (b[i] - a[i]), 0) -print(num) +def main(): +    n = int(eval(input())) +    A = list(map(int, input().split())) +    Ai = sum(A) +    B = list(map(int, input().split())) +    for i in range(n): +        b = B[i] +        if b > A[i]: +            b -= A[i] +            A[i] = 0 +            if b > A[i + 1]: +                b -= A[i + 1] +                A[i + 1] = 0 +            else: +                A[i + 1] -= b +        else: +            A[i] -= b +    Af = sum(A) +    print((Ai - Af)) + + +if __name__ == "__main__": +    main()