import java.util.*;
import java.io.*;
//https://atcoder.jp/contests/abc135/tasks/abc135_c
//city savers
class Main
{
	public static void main(String args[])throws IOException
	{
		double n,max=0,i;
		Scanner sc=new Scanner(System.in);
		n=sc.nextDouble();
		double a[]=new double[(int)n+1];
		double b[]=new double[(int)n];
		for( i=0;i<n+1;i++)
		{
			a[(int)i]=sc.nextDouble();
		}

		for( i=0;i<n;i++)
			b[(int)i]=sc.nextDouble();
		for( i=n-1;i>=0;i--)
		{
			if(b[(int)i]<=a[(int)i+1])
			{
				max+=b[(int)i];
				a[(int)i+1]-=b[(int)i];
				b[(int)i]=0;

				
			}
			else if(b[(int)i]>a[(int)i+1])
			{
				max+=a[(int)i+1];
				b[(int)i]-=a[(int)i+1];
				a[(int)i+1]=0;
				if(b[(int)i]<=a[(int)i])
				{
					max+=b[(int)i];
					a[(int)i]-=b[(int)i];
					b[(int)i]=0;
				}
				else if(b[(int)i]>a[(int)i])
				{
					max+=a[(int)i];
					b[(int)i]-=a[(int)i];
					a[(int)i]=0;

				} 	
			}
			
		}
		
		System.out.println((long)max);
	}
} import java.util.*; util.* java import java.io.*; io.* java class Main
{
	public static void main(String args[])throws IOException
	{
		double n,max=0,i;
		Scanner sc=new Scanner(System.in);
		n=sc.nextDouble();
		double a[]=new double[(int)n+1];
		double b[]=new double[(int)n];
		for( i=0;i<n+1;i++)
		{
			a[(int)i]=sc.nextDouble();
		}

		for( i=0;i<n;i++)
			b[(int)i]=sc.nextDouble();
		for( i=n-1;i>=0;i--)
		{
			if(b[(int)i]<=a[(int)i+1])
			{
				max+=b[(int)i];
				a[(int)i+1]-=b[(int)i];
				b[(int)i]=0;

				
			}
			else if(b[(int)i]>a[(int)i+1])
			{
				max+=a[(int)i+1];
				b[(int)i]-=a[(int)i+1];
				a[(int)i+1]=0;
				if(b[(int)i]<=a[(int)i])
				{
					max+=b[(int)i];
					a[(int)i]-=b[(int)i];
					b[(int)i]=0;
				}
				else if(b[(int)i]>a[(int)i])
				{
					max+=a[(int)i];
					b[(int)i]-=a[(int)i];
					a[(int)i]=0;

				} 	
			}
			
		}
		
		System.out.println((long)max);
	}
} Main public static void main(String args[])throws IOException
	{
		double n,max=0,i;
		Scanner sc=new Scanner(System.in);
		n=sc.nextDouble();
		double a[]=new double[(int)n+1];
		double b[]=new double[(int)n];
		for( i=0;i<n+1;i++)
		{
			a[(int)i]=sc.nextDouble();
		}

		for( i=0;i<n;i++)
			b[(int)i]=sc.nextDouble();
		for( i=n-1;i>=0;i--)
		{
			if(b[(int)i]<=a[(int)i+1])
			{
				max+=b[(int)i];
				a[(int)i+1]-=b[(int)i];
				b[(int)i]=0;

				
			}
			else if(b[(int)i]>a[(int)i+1])
			{
				max+=a[(int)i+1];
				b[(int)i]-=a[(int)i+1];
				a[(int)i+1]=0;
				if(b[(int)i]<=a[(int)i])
				{
					max+=b[(int)i];
					a[(int)i]-=b[(int)i];
					b[(int)i]=0;
				}
				else if(b[(int)i]>a[(int)i])
				{
					max+=a[(int)i];
					b[(int)i]-=a[(int)i];
					a[(int)i]=0;

				} 	
			}
			
		}
		
		System.out.println((long)max);
	} main {
		double n,max=0,i;
		Scanner sc=new Scanner(System.in);
		n=sc.nextDouble();
		double a[]=new double[(int)n+1];
		double b[]=new double[(int)n];
		for( i=0;i<n+1;i++)
		{
			a[(int)i]=sc.nextDouble();
		}

		for( i=0;i<n;i++)
			b[(int)i]=sc.nextDouble();
		for( i=n-1;i>=0;i--)
		{
			if(b[(int)i]<=a[(int)i+1])
			{
				max+=b[(int)i];
				a[(int)i+1]-=b[(int)i];
				b[(int)i]=0;

				
			}
			else if(b[(int)i]>a[(int)i+1])
			{
				max+=a[(int)i+1];
				b[(int)i]-=a[(int)i+1];
				a[(int)i+1]=0;
				if(b[(int)i]<=a[(int)i])
				{
					max+=b[(int)i];
					a[(int)i]-=b[(int)i];
					b[(int)i]=0;
				}
				else if(b[(int)i]>a[(int)i])
				{
					max+=a[(int)i];
					b[(int)i]-=a[(int)i];
					a[(int)i]=0;

				} 	
			}
			
		}
		
		System.out.println((long)max);
	} double n n max=0 max 0 i; i Scanner sc=new Scanner(System.in); sc new Scanner(System.in) n=sc.nextDouble() n sc.nextDouble() sc.nextDouble sc double a[]=new double[(int)n+1]; a new double[(int)n+1] (int)n+1 (int)n 1 double b[]=new double[(int)n]; b new double[(int)n] (int)n for( i=0;i<n+1;i++)
		{
			a[(int)i]=sc.nextDouble();
		} i=0; i=0 i 0 i<n+1 i n+1 n 1 i++ i++ i {
			a[(int)i]=sc.nextDouble();
		} {
			a[(int)i]=sc.nextDouble();
		} a[(int)i]=sc.nextDouble() a[(int)i] a (int)i sc.nextDouble() sc.nextDouble sc for( i=0;i<n;i++)
			b[(int)i]=sc.nextDouble(); i=0; i=0 i 0 i<n i n i++ i++ i b[(int)i]=sc.nextDouble(); b[(int)i]=sc.nextDouble() b[(int)i] b (int)i sc.nextDouble() sc.nextDouble sc for( i=n-1;i>=0;i--)
		{
			if(b[(int)i]<=a[(int)i+1])
			{
				max+=b[(int)i];
				a[(int)i+1]-=b[(int)i];
				b[(int)i]=0;

				
			}
			else if(b[(int)i]>a[(int)i+1])
			{
				max+=a[(int)i+1];
				b[(int)i]-=a[(int)i+1];
				a[(int)i+1]=0;
				if(b[(int)i]<=a[(int)i])
				{
					max+=b[(int)i];
					a[(int)i]-=b[(int)i];
					b[(int)i]=0;
				}
				else if(b[(int)i]>a[(int)i])
				{
					max+=a[(int)i];
					b[(int)i]-=a[(int)i];
					a[(int)i]=0;

				} 	
			}
			
		} i=n-1; i=n-1 i n-1 n 1 i>=0 i 0 i-- i-- i {
			if(b[(int)i]<=a[(int)i+1])
			{
				max+=b[(int)i];
				a[(int)i+1]-=b[(int)i];
				b[(int)i]=0;

				
			}
			else if(b[(int)i]>a[(int)i+1])
			{
				max+=a[(int)i+1];
				b[(int)i]-=a[(int)i+1];
				a[(int)i+1]=0;
				if(b[(int)i]<=a[(int)i])
				{
					max+=b[(int)i];
					a[(int)i]-=b[(int)i];
					b[(int)i]=0;
				}
				else if(b[(int)i]>a[(int)i])
				{
					max+=a[(int)i];
					b[(int)i]-=a[(int)i];
					a[(int)i]=0;

				} 	
			}
			
		} {
			if(b[(int)i]<=a[(int)i+1])
			{
				max+=b[(int)i];
				a[(int)i+1]-=b[(int)i];
				b[(int)i]=0;

				
			}
			else if(b[(int)i]>a[(int)i+1])
			{
				max+=a[(int)i+1];
				b[(int)i]-=a[(int)i+1];
				a[(int)i+1]=0;
				if(b[(int)i]<=a[(int)i])
				{
					max+=b[(int)i];
					a[(int)i]-=b[(int)i];
					b[(int)i]=0;
				}
				else if(b[(int)i]>a[(int)i])
				{
					max+=a[(int)i];
					b[(int)i]-=a[(int)i];
					a[(int)i]=0;

				} 	
			}
			
		} if(b[(int)i]<=a[(int)i+1])
			{
				max+=b[(int)i];
				a[(int)i+1]-=b[(int)i];
				b[(int)i]=0;

				
			}
			else if(b[(int)i]>a[(int)i+1])
			{
				max+=a[(int)i+1];
				b[(int)i]-=a[(int)i+1];
				a[(int)i+1]=0;
				if(b[(int)i]<=a[(int)i])
				{
					max+=b[(int)i];
					a[(int)i]-=b[(int)i];
					b[(int)i]=0;
				}
				else if(b[(int)i]>a[(int)i])
				{
					max+=a[(int)i];
					b[(int)i]-=a[(int)i];
					a[(int)i]=0;

				} 	
			} b[(int)i]<=a[(int)i+1] b[(int)i] b (int)i a[(int)i+1] a (int)i+1 (int)i 1 {
				max+=b[(int)i];
				a[(int)i+1]-=b[(int)i];
				b[(int)i]=0;

				
			} max+=b[(int)i] max b[(int)i] b (int)i a[(int)i+1]-=b[(int)i] a[(int)i+1] a (int)i+1 (int)i 1 b[(int)i] b (int)i b[(int)i]=0 b[(int)i] b (int)i 0 if(b[(int)i]>a[(int)i+1])
			{
				max+=a[(int)i+1];
				b[(int)i]-=a[(int)i+1];
				a[(int)i+1]=0;
				if(b[(int)i]<=a[(int)i])
				{
					max+=b[(int)i];
					a[(int)i]-=b[(int)i];
					b[(int)i]=0;
				}
				else if(b[(int)i]>a[(int)i])
				{
					max+=a[(int)i];
					b[(int)i]-=a[(int)i];
					a[(int)i]=0;

				} 	
			} b[(int)i]>a[(int)i+1] b[(int)i] b (int)i a[(int)i+1] a (int)i+1 (int)i 1 {
				max+=a[(int)i+1];
				b[(int)i]-=a[(int)i+1];
				a[(int)i+1]=0;
				if(b[(int)i]<=a[(int)i])
				{
					max+=b[(int)i];
					a[(int)i]-=b[(int)i];
					b[(int)i]=0;
				}
				else if(b[(int)i]>a[(int)i])
				{
					max+=a[(int)i];
					b[(int)i]-=a[(int)i];
					a[(int)i]=0;

				} 	
			} max+=a[(int)i+1] max a[(int)i+1] a (int)i+1 (int)i 1 b[(int)i]-=a[(int)i+1] b[(int)i] b (int)i a[(int)i+1] a (int)i+1 (int)i 1 a[(int)i+1]=0 a[(int)i+1] a (int)i+1 (int)i 1 0 if(b[(int)i]<=a[(int)i])
				{
					max+=b[(int)i];
					a[(int)i]-=b[(int)i];
					b[(int)i]=0;
				}
				else if(b[(int)i]>a[(int)i])
				{
					max+=a[(int)i];
					b[(int)i]-=a[(int)i];
					a[(int)i]=0;

				} b[(int)i]<=a[(int)i] b[(int)i] b (int)i a[(int)i] a (int)i {
					max+=b[(int)i];
					a[(int)i]-=b[(int)i];
					b[(int)i]=0;
				} max+=b[(int)i] max b[(int)i] b (int)i a[(int)i]-=b[(int)i] a[(int)i] a (int)i b[(int)i] b (int)i b[(int)i]=0 b[(int)i] b (int)i 0 if(b[(int)i]>a[(int)i])
				{
					max+=a[(int)i];
					b[(int)i]-=a[(int)i];
					a[(int)i]=0;

				} b[(int)i]>a[(int)i] b[(int)i] b (int)i a[(int)i] a (int)i {
					max+=a[(int)i];
					b[(int)i]-=a[(int)i];
					a[(int)i]=0;

				} max+=a[(int)i] max a[(int)i] a (int)i b[(int)i]-=a[(int)i] b[(int)i] b (int)i a[(int)i] a (int)i a[(int)i]=0 a[(int)i] a (int)i 0 System.out.println((long)max) System.out.println System.out System System.out (long)max String args[] args
import java.util.*;
import java.io.*;
//https://atcoder.jp/contests/abc135/tasks/abc135_c
//city savers
class Main
{
	public static void main(String args[])throws IOException
	{
		double n,max=0,i;
		Scanner sc=new Scanner(System.in);
		n=sc.nextDouble();
		double a[]=new double[(int)n+1];
		double b[]=new double[(int)n];
		for( i=0;i<n+1;i++)
		{
			a[(int)i]=sc.nextDouble();
		}

		for( i=0;i<n;i++)
			b[(int)i]=sc.nextDouble();
		for( i=n-1;i>=0;i--)
		{
			if(b[(int)i]<=a[(int)i+1])
			{
				max+=b[(int)i];
				a[(int)i+1]-=b[(int)i];
				b[(int)i]=0;

				
			}
			else if(b[(int)i]>a[(int)i+1])
			{
				max+=a[(int)i+1];
				b[(int)i]-=a[(int)i+1];
				a[(int)i+1]=0;
				if(b[(int)i]<=a[(int)i])
				{
					max+=b[(int)i];
					a[(int)i]-=b[(int)i];
					b[(int)i]=0;
				}
				else if(b[(int)i]>a[(int)i])
				{
					max+=a[(int)i];
					b[(int)i]-=a[(int)i];
					a[(int)i]=0;

				} 	
			}
			
		}
		
		System.out.println((long)max);
	}
}