import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		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++) {	//n+1の町にいるモンスター
		    a[i]=sc.nextInt();		//モンスターの数
		}
		
		for(int i=0;i<n;i++) {
		    b[i]=sc.nextInt();		//勇者が倒せる数
		}
		
		long count=0;
		for(int i=0;i<n;i++) {
		    if (b[i]<=a[i]) {
		        count+=b[i];
		    } else {
		        b[i]-=a[i];
		        count+=a[i];
		        
		        int ans= Math.min(a[i+1], b[i]);
		        count+=ans;
		        a[i+1]-=ans;
		    }
		}
		System.out.println(count);
		sc.close();
	}
} import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		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++) {	//n+1の町にいるモンスター
		    a[i]=sc.nextInt();		//モンスターの数
		}
		
		for(int i=0;i<n;i++) {
		    b[i]=sc.nextInt();		//勇者が倒せる数
		}
		
		long count=0;
		for(int i=0;i<n;i++) {
		    if (b[i]<=a[i]) {
		        count+=b[i];
		    } else {
		        b[i]-=a[i];
		        count+=a[i];
		        
		        int ans= Math.min(a[i+1], b[i]);
		        count+=ans;
		        a[i+1]-=ans;
		    }
		}
		System.out.println(count);
		sc.close();
	}
} Main public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		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++) {	//n+1の町にいるモンスター
		    a[i]=sc.nextInt();		//モンスターの数
		}
		
		for(int i=0;i<n;i++) {
		    b[i]=sc.nextInt();		//勇者が倒せる数
		}
		
		long count=0;
		for(int i=0;i<n;i++) {
		    if (b[i]<=a[i]) {
		        count+=b[i];
		    } else {
		        b[i]-=a[i];
		        count+=a[i];
		        
		        int ans= Math.min(a[i+1], b[i]);
		        count+=ans;
		        a[i+1]-=ans;
		    }
		}
		System.out.println(count);
		sc.close();
	} main {
		// TODO 自動生成されたメソッド・スタブ
		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++) {	//n+1の町にいるモンスター
		    a[i]=sc.nextInt();		//モンスターの数
		}
		
		for(int i=0;i<n;i++) {
		    b[i]=sc.nextInt();		//勇者が倒せる数
		}
		
		long count=0;
		for(int i=0;i<n;i++) {
		    if (b[i]<=a[i]) {
		        count+=b[i];
		    } else {
		        b[i]-=a[i];
		        count+=a[i];
		        
		        int ans= Math.min(a[i+1], b[i]);
		        count+=ans;
		        a[i+1]-=ans;
		    }
		}
		System.out.println(count);
		sc.close();
	} 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++) {	//n+1の町にいるモンスター
		    a[i]=sc.nextInt();		//モンスターの数
		} int i=0; int i=0; i 0 i<n+1 i n+1 n 1 i++ i++ i {	//n+1の町にいるモンスター
		    a[i]=sc.nextInt();		//モンスターの数
		} {	//n+1の町にいるモンスター
		    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 count=0; count 0 for(int i=0;i<n;i++) {
		    if (b[i]<=a[i]) {
		        count+=b[i];
		    } else {
		        b[i]-=a[i];
		        count+=a[i];
		        
		        int ans= Math.min(a[i+1], b[i]);
		        count+=ans;
		        a[i+1]-=ans;
		    }
		} int i=0; int i=0; i 0 i<n i n i++ i++ i {
		    if (b[i]<=a[i]) {
		        count+=b[i];
		    } else {
		        b[i]-=a[i];
		        count+=a[i];
		        
		        int ans= Math.min(a[i+1], b[i]);
		        count+=ans;
		        a[i+1]-=ans;
		    }
		} {
		    if (b[i]<=a[i]) {
		        count+=b[i];
		    } else {
		        b[i]-=a[i];
		        count+=a[i];
		        
		        int ans= Math.min(a[i+1], b[i]);
		        count+=ans;
		        a[i+1]-=ans;
		    }
		} if (b[i]<=a[i]) {
		        count+=b[i];
		    } else {
		        b[i]-=a[i];
		        count+=a[i];
		        
		        int ans= Math.min(a[i+1], b[i]);
		        count+=ans;
		        a[i+1]-=ans;
		    } b[i]<=a[i] b[i] b i a[i] a i {
		        count+=b[i];
		    } count+=b[i] count b[i] b i {
		        b[i]-=a[i];
		        count+=a[i];
		        
		        int ans= Math.min(a[i+1], b[i]);
		        count+=ans;
		        a[i+1]-=ans;
		    } b[i]-=a[i] b[i] b i a[i] a i count+=a[i] count a[i] a i int ans= Math.min(a[i+1], b[i]); ans Math.min(a[i+1], b[i]) Math.min Math a[i+1] a i+1 i 1 b[i] b i count+=ans count ans a[i+1]-=ans a[i+1] a i+1 i 1 ans System.out.println(count) System.out.println System.out System System.out count sc.close() sc.close sc String[] args args public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		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++) {	//n+1の町にいるモンスター
		    a[i]=sc.nextInt();		//モンスターの数
		}
		
		for(int i=0;i<n;i++) {
		    b[i]=sc.nextInt();		//勇者が倒せる数
		}
		
		long count=0;
		for(int i=0;i<n;i++) {
		    if (b[i]<=a[i]) {
		        count+=b[i];
		    } else {
		        b[i]-=a[i];
		        count+=a[i];
		        
		        int ans= Math.min(a[i+1], b[i]);
		        count+=ans;
		        a[i+1]-=ans;
		    }
		}
		System.out.println(count);
		sc.close();
	}
} public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		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++) {	//n+1の町にいるモンスター
		    a[i]=sc.nextInt();		//モンスターの数
		}
		
		for(int i=0;i<n;i++) {
		    b[i]=sc.nextInt();		//勇者が倒せる数
		}
		
		long count=0;
		for(int i=0;i<n;i++) {
		    if (b[i]<=a[i]) {
		        count+=b[i];
		    } else {
		        b[i]-=a[i];
		        count+=a[i];
		        
		        int ans= Math.min(a[i+1], b[i]);
		        count+=ans;
		        a[i+1]-=ans;
		    }
		}
		System.out.println(count);
		sc.close();
	}
} Main
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		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++) {	//n+1の町にいるモンスター
		    a[i]=sc.nextInt();		//モンスターの数
		}
		
		for(int i=0;i<n;i++) {
		    b[i]=sc.nextInt();		//勇者が倒せる数
		}
		
		long count=0;
		for(int i=0;i<n;i++) {
		    if (b[i]<=a[i]) {
		        count+=b[i];
		    } else {
		        b[i]-=a[i];
		        count+=a[i];
		        
		        int ans= Math.min(a[i+1], b[i]);
		        count+=ans;
		        a[i+1]-=ans;
		    }
		}
		System.out.println(count);
		sc.close();
	}
}
