import java.util.*;
import static java.lang.Math.*;
import java.math.BigInteger;

public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		
		// 入力
		int n = sc.nextInt();
		int[] a = new int[n+1];
		int[] b = new int[n];
		
		for(int i = 0; i < n+1; i++){
		    a[i] = sc.nextInt();
		}
		for(int i = 0; i < n; i++){
		    b[i] = sc.nextInt();
		}
		
		// 計算
		long result = 0;
		for(int i = 0; i < n; i++){
		    result = result + min(a[i], b[i]);
		    result = result + min(a[i+1], max(0, b[i] - a[i]));
		    a[i+1] = a[i+1] - min(a[i+1], max(0, b[i] - a[i]));
		}
		
		// 出力
		System.out.println(result);
	}
} import java.util.*; util.* java import static java.lang.Math.*; import static java.lang.Math.*; import static java.lang.Math.*; import java.math.BigInteger; BigInteger java.math public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		
		// 入力
		int n = sc.nextInt();
		int[] a = new int[n+1];
		int[] b = new int[n];
		
		for(int i = 0; i < n+1; i++){
		    a[i] = sc.nextInt();
		}
		for(int i = 0; i < n; i++){
		    b[i] = sc.nextInt();
		}
		
		// 計算
		long result = 0;
		for(int i = 0; i < n; i++){
		    result = result + min(a[i], b[i]);
		    result = result + min(a[i+1], max(0, b[i] - a[i]));
		    a[i+1] = a[i+1] - min(a[i+1], max(0, b[i] - a[i]));
		}
		
		// 出力
		System.out.println(result);
	}
} Main public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		
		// 入力
		int n = sc.nextInt();
		int[] a = new int[n+1];
		int[] b = new int[n];
		
		for(int i = 0; i < n+1; i++){
		    a[i] = sc.nextInt();
		}
		for(int i = 0; i < n; i++){
		    b[i] = sc.nextInt();
		}
		
		// 計算
		long result = 0;
		for(int i = 0; i < n; i++){
		    result = result + min(a[i], b[i]);
		    result = result + min(a[i+1], max(0, b[i] - a[i]));
		    a[i+1] = a[i+1] - min(a[i+1], max(0, b[i] - a[i]));
		}
		
		// 出力
		System.out.println(result);
	} main {
		Scanner sc = new Scanner(System.in);
		
		// 入力
		int n = sc.nextInt();
		int[] a = new int[n+1];
		int[] b = new int[n];
		
		for(int i = 0; i < n+1; i++){
		    a[i] = sc.nextInt();
		}
		for(int i = 0; i < n; i++){
		    b[i] = sc.nextInt();
		}
		
		// 計算
		long result = 0;
		for(int i = 0; i < n; i++){
		    result = result + min(a[i], b[i]);
		    result = result + min(a[i+1], max(0, b[i] - a[i]));
		    a[i+1] = a[i+1] - min(a[i+1], max(0, b[i] - a[i]));
		}
		
		// 出力
		System.out.println(result);
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc int[] a = new int[n+1]; a new int[n+1] n+1 n 1 int[] b = new int[n]; b new int[n] n for(int i = 0; i < n+1; i++){
		    a[i] = sc.nextInt();
		} int i = 0; int i = 0; i 0 i < n+1 i n+1 n 1 i++ i++ i {
		    a[i] = sc.nextInt();
		} {
		    a[i] = sc.nextInt();
		} a[i] = sc.nextInt() a[i] a i sc.nextInt() sc.nextInt sc for(int i = 0; i < n; i++){
		    b[i] = sc.nextInt();
		} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
		    b[i] = sc.nextInt();
		} {
		    b[i] = sc.nextInt();
		} b[i] = sc.nextInt() b[i] b i sc.nextInt() sc.nextInt sc long result = 0; result 0 for(int i = 0; i < n; i++){
		    result = result + min(a[i], b[i]);
		    result = result + min(a[i+1], max(0, b[i] - a[i]));
		    a[i+1] = a[i+1] - min(a[i+1], max(0, b[i] - a[i]));
		} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
		    result = result + min(a[i], b[i]);
		    result = result + min(a[i+1], max(0, b[i] - a[i]));
		    a[i+1] = a[i+1] - min(a[i+1], max(0, b[i] - a[i]));
		} {
		    result = result + min(a[i], b[i]);
		    result = result + min(a[i+1], max(0, b[i] - a[i]));
		    a[i+1] = a[i+1] - min(a[i+1], max(0, b[i] - a[i]));
		} result = result + min(a[i], b[i]) result result + min(a[i], b[i]) result min(a[i], b[i]) min a[i] a i b[i] b i result = result + min(a[i+1], max(0, b[i] - a[i])) result result + min(a[i+1], max(0, b[i] - a[i])) result min(a[i+1], max(0, b[i] - a[i])) min a[i+1] a i+1 i 1 max(0, b[i] - a[i]) max 0 b[i] - a[i] b[i] b i a[i] a i a[i+1] = a[i+1] - min(a[i+1], max(0, b[i] - a[i])) a[i+1] a i+1 i 1 a[i+1] - min(a[i+1], max(0, b[i] - a[i])) a[i+1] a i+1 i 1 min(a[i+1], max(0, b[i] - a[i])) min a[i+1] a i+1 i 1 max(0, b[i] - a[i]) max 0 b[i] - a[i] b[i] b i a[i] a i System.out.println(result) System.out.println System.out System System.out result String[] args args public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		
		// 入力
		int n = sc.nextInt();
		int[] a = new int[n+1];
		int[] b = new int[n];
		
		for(int i = 0; i < n+1; i++){
		    a[i] = sc.nextInt();
		}
		for(int i = 0; i < n; i++){
		    b[i] = sc.nextInt();
		}
		
		// 計算
		long result = 0;
		for(int i = 0; i < n; i++){
		    result = result + min(a[i], b[i]);
		    result = result + min(a[i+1], max(0, b[i] - a[i]));
		    a[i+1] = a[i+1] - min(a[i+1], max(0, b[i] - a[i]));
		}
		
		// 出力
		System.out.println(result);
	}
} public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		
		// 入力
		int n = sc.nextInt();
		int[] a = new int[n+1];
		int[] b = new int[n];
		
		for(int i = 0; i < n+1; i++){
		    a[i] = sc.nextInt();
		}
		for(int i = 0; i < n; i++){
		    b[i] = sc.nextInt();
		}
		
		// 計算
		long result = 0;
		for(int i = 0; i < n; i++){
		    result = result + min(a[i], b[i]);
		    result = result + min(a[i+1], max(0, b[i] - a[i]));
		    a[i+1] = a[i+1] - min(a[i+1], max(0, b[i] - a[i]));
		}
		
		// 出力
		System.out.println(result);
	}
} Main
import java.util.*;
import static java.lang.Math.*;
import java.math.BigInteger;

public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		
		// 入力
		int n = sc.nextInt();
		int[] a = new int[n+1];
		int[] b = new int[n];
		
		for(int i = 0; i < n+1; i++){
		    a[i] = sc.nextInt();
		}
		for(int i = 0; i < n; i++){
		    b[i] = sc.nextInt();
		}
		
		// 計算
		long result = 0;
		for(int i = 0; i < n; i++){
		    result = result + min(a[i], b[i]);
		    result = result + min(a[i+1], max(0, b[i] - a[i]));
		    a[i+1] = a[i+1] - min(a[i+1], max(0, b[i] - a[i]));
		}
		
		// 出力
		System.out.println(result);
	}
}
