#ABC-136-C

N = int(eval(input()))

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

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

hunted_monsters = 0



for i in range(N):

    #勇者iが街iのモンスターを全て倒しても余力がある場合

    if A[i] < B[i]:

        B[i] -= A[i]

        hunted_monsters += A[i]

        A[i] = 0

        #街i+1のモンスターも全て倒せる場合

        if A[i+1] <= B[i]:

            B[i] -= A[i+1]

            hunted_monsters += A[i+1]

            A[i+1] = 0

        #街i+1のモンスターを一部倒せる場合

        else:

            A[i+1] -= B[i]

            hunted_monsters += B[i]

            B[i] = 0

    #勇者iが街iのモンスターの一部(もしくはぴったり全て)倒して余力がない場合

    else:

        A[i] -= B[i]

        hunted_monsters += B[i]

        B[i] = 0



print(hunted_monsters)

        
N = int(eval(input()))

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

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



ans = 0

for i in range(N):

    # 勇者に余力がある場合

    if B[i] >= A[i]:

        ans += A[i]

        B[i] -= A[i]

        if B[i] >= A[i+1]:

            ans += A[i+1]

            A[i+1] = 0

        else:

            ans += B[i]

            A[i+1] -= B[i]

    # 勇者に余力がない場合

    else:

        ans += B[i]

print(ans)

# ABC-136-C
N = int(eval(input()))
A = list(map(int, input().split()))
B = list(map(int, input().split()))
hunted_monsters = 0
for i in range(N):
    # 勇者iが街iのモンスターを全て倒しても余力がある場合
    if A[i] < B[i]:
        B[i] -= A[i]
        hunted_monsters += A[i]
        A[i] = 0
        # 街i+1のモンスターも全て倒せる場合
        if A[i + 1] <= B[i]:
            B[i] -= A[i + 1]
            hunted_monsters += A[i + 1]
            A[i + 1] = 0
        # 街i+1のモンスターを一部倒せる場合
        else:
            A[i + 1] -= B[i]
            hunted_monsters += B[i]
            B[i] = 0
    # 勇者iが街iのモンスターの一部(もしくはぴったり全て)倒して余力がない場合
    else:
        A[i] -= B[i]
        hunted_monsters += B[i]
        B[i] = 0
print(hunted_monsters)

N = int(eval(input()))
A = list(map(int, input().split()))
B = list(map(int, input().split()))
ans = 0
for i in range(N):
    # 勇者に余力がある場合
    if B[i] >= A[i]:
        ans += A[i]
        B[i] -= A[i]
        if B[i] >= A[i + 1]:
            ans += A[i + 1]
            A[i + 1] = 0
        else:
            ans += B[i]
            A[i + 1] -= B[i]
    # 勇者に余力がない場合
    else:
        ans += B[i]
print(ans)

-# ABC-136-C -hunted_monsters = 0 +ans = 0 -    # 勇者iが街iのモンスターを全て倒しても余力がある場合 -    if A[i] < B[i]: +    # 勇者に余力がある場合 +    if B[i] >= A[i]: +        ans += A[i] -        hunted_monsters += A[i] -        A[i] = 0 -        # 街i+1のモンスターも全て倒せる場合 -        if A[i + 1] <= B[i]: -            B[i] -= A[i + 1] -            hunted_monsters += A[i + 1] +        if B[i] >= A[i + 1]: +            ans += A[i + 1] -        # 街i+1のモンスターを一部倒せる場合 +            ans += B[i] -            hunted_monsters += B[i] -            B[i] = 0 -    # 勇者iが街iのモンスターの一部(もしくはぴったり全て)倒して余力がない場合 +    # 勇者に余力がない場合 -        A[i] -= B[i] -        hunted_monsters += B[i] -        B[i] = 0 -print(hunted_monsters) +        ans += B[i] +print(ans)