import java.util.*;


public class Main {
    public static void main(String[] args){

        Scanner s = new Scanner(System.in);
        
        int yusha = s.nextInt();        // 勇者の数
        long monsters[] = new long[yusha + 1];    //　モンスターの数を格納する
        long strength[] = new long[yusha];        // 勇者の強さを格納する

        // モンスターを倒した数
        long count = 0;

        for (int i = 0; i < yusha+1; i++) {
            monsters[i] = s.nextInt();
        }

        for (int i = 0; i < yusha; i++) {
            strength[i] = s.nextInt();
        }

        // 勇者の数だけループ
        for (int i = 0; i < yusha; i++) {
            // 2つの街を守ろうとする
            for (int j = 0; j < 2; j++) {
                // 勇者よりモンスターが強い場合倒せる限り倒す
                if (monsters[i+j] >= strength[i]) {
                    count += strength[i];
                    monsters[i+j] = monsters[i+j] - strength[i];    // 残りモンスター数
                    strength[i] = 0;                // 勇者の余力
                } else {
                    count += monsters[j + i];   // 一つの街のモンスターをすべて倒す
                    strength[i] = strength[i] - monsters[i+j];  // 勇者の余力
                    monsters[i+j] = 0;    // 残りモンスター数
                }
            }
        }

        System.out.println(count);
    }
} import java.util.*; util.* java public class Main {
    public static void main(String[] args){

        Scanner s = new Scanner(System.in);
        
        int yusha = s.nextInt();        // 勇者の数
        long monsters[] = new long[yusha + 1];    //　モンスターの数を格納する
        long strength[] = new long[yusha];        // 勇者の強さを格納する

        // モンスターを倒した数
        long count = 0;

        for (int i = 0; i < yusha+1; i++) {
            monsters[i] = s.nextInt();
        }

        for (int i = 0; i < yusha; i++) {
            strength[i] = s.nextInt();
        }

        // 勇者の数だけループ
        for (int i = 0; i < yusha; i++) {
            // 2つの街を守ろうとする
            for (int j = 0; j < 2; j++) {
                // 勇者よりモンスターが強い場合倒せる限り倒す
                if (monsters[i+j] >= strength[i]) {
                    count += strength[i];
                    monsters[i+j] = monsters[i+j] - strength[i];    // 残りモンスター数
                    strength[i] = 0;                // 勇者の余力
                } else {
                    count += monsters[j + i];   // 一つの街のモンスターをすべて倒す
                    strength[i] = strength[i] - monsters[i+j];  // 勇者の余力
                    monsters[i+j] = 0;    // 残りモンスター数
                }
            }
        }

        System.out.println(count);
    }
} Main public static void main(String[] args){

        Scanner s = new Scanner(System.in);
        
        int yusha = s.nextInt();        // 勇者の数
        long monsters[] = new long[yusha + 1];    //　モンスターの数を格納する
        long strength[] = new long[yusha];        // 勇者の強さを格納する

        // モンスターを倒した数
        long count = 0;

        for (int i = 0; i < yusha+1; i++) {
            monsters[i] = s.nextInt();
        }

        for (int i = 0; i < yusha; i++) {
            strength[i] = s.nextInt();
        }

        // 勇者の数だけループ
        for (int i = 0; i < yusha; i++) {
            // 2つの街を守ろうとする
            for (int j = 0; j < 2; j++) {
                // 勇者よりモンスターが強い場合倒せる限り倒す
                if (monsters[i+j] >= strength[i]) {
                    count += strength[i];
                    monsters[i+j] = monsters[i+j] - strength[i];    // 残りモンスター数
                    strength[i] = 0;                // 勇者の余力
                } else {
                    count += monsters[j + i];   // 一つの街のモンスターをすべて倒す
                    strength[i] = strength[i] - monsters[i+j];  // 勇者の余力
                    monsters[i+j] = 0;    // 残りモンスター数
                }
            }
        }

        System.out.println(count);
    } main {

        Scanner s = new Scanner(System.in);
        
        int yusha = s.nextInt();        // 勇者の数
        long monsters[] = new long[yusha + 1];    //　モンスターの数を格納する
        long strength[] = new long[yusha];        // 勇者の強さを格納する

        // モンスターを倒した数
        long count = 0;

        for (int i = 0; i < yusha+1; i++) {
            monsters[i] = s.nextInt();
        }

        for (int i = 0; i < yusha; i++) {
            strength[i] = s.nextInt();
        }

        // 勇者の数だけループ
        for (int i = 0; i < yusha; i++) {
            // 2つの街を守ろうとする
            for (int j = 0; j < 2; j++) {
                // 勇者よりモンスターが強い場合倒せる限り倒す
                if (monsters[i+j] >= strength[i]) {
                    count += strength[i];
                    monsters[i+j] = monsters[i+j] - strength[i];    // 残りモンスター数
                    strength[i] = 0;                // 勇者の余力
                } else {
                    count += monsters[j + i];   // 一つの街のモンスターをすべて倒す
                    strength[i] = strength[i] - monsters[i+j];  // 勇者の余力
                    monsters[i+j] = 0;    // 残りモンスター数
                }
            }
        }

        System.out.println(count);
    } Scanner s = new Scanner(System.in); s new Scanner(System.in) int yusha = s.nextInt(); yusha s.nextInt() s.nextInt s long monsters[] = new long[yusha + 1]; monsters new long[yusha + 1] yusha + 1 yusha 1 long strength[] = new long[yusha]; strength new long[yusha] yusha long count = 0; count 0 for (int i = 0; i < yusha+1; i++) {
            monsters[i] = s.nextInt();
        } int i = 0; int i = 0; i 0 i < yusha+1 i yusha+1 yusha 1 i++ i++ i {
            monsters[i] = s.nextInt();
        } {
            monsters[i] = s.nextInt();
        } monsters[i] = s.nextInt() monsters[i] monsters i s.nextInt() s.nextInt s for (int i = 0; i < yusha; i++) {
            strength[i] = s.nextInt();
        } int i = 0; int i = 0; i 0 i < yusha i yusha i++ i++ i {
            strength[i] = s.nextInt();
        } {
            strength[i] = s.nextInt();
        } strength[i] = s.nextInt() strength[i] strength i s.nextInt() s.nextInt s for (int i = 0; i < yusha; i++) {
            // 2つの街を守ろうとする
            for (int j = 0; j < 2; j++) {
                // 勇者よりモンスターが強い場合倒せる限り倒す
                if (monsters[i+j] >= strength[i]) {
                    count += strength[i];
                    monsters[i+j] = monsters[i+j] - strength[i];    // 残りモンスター数
                    strength[i] = 0;                // 勇者の余力
                } else {
                    count += monsters[j + i];   // 一つの街のモンスターをすべて倒す
                    strength[i] = strength[i] - monsters[i+j];  // 勇者の余力
                    monsters[i+j] = 0;    // 残りモンスター数
                }
            }
        } int i = 0; int i = 0; i 0 i < yusha i yusha i++ i++ i {
            // 2つの街を守ろうとする
            for (int j = 0; j < 2; j++) {
                // 勇者よりモンスターが強い場合倒せる限り倒す
                if (monsters[i+j] >= strength[i]) {
                    count += strength[i];
                    monsters[i+j] = monsters[i+j] - strength[i];    // 残りモンスター数
                    strength[i] = 0;                // 勇者の余力
                } else {
                    count += monsters[j + i];   // 一つの街のモンスターをすべて倒す
                    strength[i] = strength[i] - monsters[i+j];  // 勇者の余力
                    monsters[i+j] = 0;    // 残りモンスター数
                }
            }
        } {
            // 2つの街を守ろうとする
            for (int j = 0; j < 2; j++) {
                // 勇者よりモンスターが強い場合倒せる限り倒す
                if (monsters[i+j] >= strength[i]) {
                    count += strength[i];
                    monsters[i+j] = monsters[i+j] - strength[i];    // 残りモンスター数
                    strength[i] = 0;                // 勇者の余力
                } else {
                    count += monsters[j + i];   // 一つの街のモンスターをすべて倒す
                    strength[i] = strength[i] - monsters[i+j];  // 勇者の余力
                    monsters[i+j] = 0;    // 残りモンスター数
                }
            }
        } for (int j = 0; j < 2; j++) {
                // 勇者よりモンスターが強い場合倒せる限り倒す
                if (monsters[i+j] >= strength[i]) {
                    count += strength[i];
                    monsters[i+j] = monsters[i+j] - strength[i];    // 残りモンスター数
                    strength[i] = 0;                // 勇者の余力
                } else {
                    count += monsters[j + i];   // 一つの街のモンスターをすべて倒す
                    strength[i] = strength[i] - monsters[i+j];  // 勇者の余力
                    monsters[i+j] = 0;    // 残りモンスター数
                }
            } int j = 0; int j = 0; j 0 j < 2 j 2 j++ j++ j {
                // 勇者よりモンスターが強い場合倒せる限り倒す
                if (monsters[i+j] >= strength[i]) {
                    count += strength[i];
                    monsters[i+j] = monsters[i+j] - strength[i];    // 残りモンスター数
                    strength[i] = 0;                // 勇者の余力
                } else {
                    count += monsters[j + i];   // 一つの街のモンスターをすべて倒す
                    strength[i] = strength[i] - monsters[i+j];  // 勇者の余力
                    monsters[i+j] = 0;    // 残りモンスター数
                }
            } {
                // 勇者よりモンスターが強い場合倒せる限り倒す
                if (monsters[i+j] >= strength[i]) {
                    count += strength[i];
                    monsters[i+j] = monsters[i+j] - strength[i];    // 残りモンスター数
                    strength[i] = 0;                // 勇者の余力
                } else {
                    count += monsters[j + i];   // 一つの街のモンスターをすべて倒す
                    strength[i] = strength[i] - monsters[i+j];  // 勇者の余力
                    monsters[i+j] = 0;    // 残りモンスター数
                }
            } if (monsters[i+j] >= strength[i]) {
                    count += strength[i];
                    monsters[i+j] = monsters[i+j] - strength[i];    // 残りモンスター数
                    strength[i] = 0;                // 勇者の余力
                } else {
                    count += monsters[j + i];   // 一つの街のモンスターをすべて倒す
                    strength[i] = strength[i] - monsters[i+j];  // 勇者の余力
                    monsters[i+j] = 0;    // 残りモンスター数
                } monsters[i+j] >= strength[i] monsters[i+j] monsters i+j i j strength[i] strength i {
                    count += strength[i];
                    monsters[i+j] = monsters[i+j] - strength[i];    // 残りモンスター数
                    strength[i] = 0;                // 勇者の余力
                } count += strength[i] count strength[i] strength i monsters[i+j] = monsters[i+j] - strength[i] monsters[i+j] monsters i+j i j monsters[i+j] - strength[i] monsters[i+j] monsters i+j i j strength[i] strength i strength[i] = 0 strength[i] strength i 0 {
                    count += monsters[j + i];   // 一つの街のモンスターをすべて倒す
                    strength[i] = strength[i] - monsters[i+j];  // 勇者の余力
                    monsters[i+j] = 0;    // 残りモンスター数
                } count += monsters[j + i] count monsters[j + i] monsters j + i j i strength[i] = strength[i] - monsters[i+j] strength[i] strength i strength[i] - monsters[i+j] strength[i] strength i monsters[i+j] monsters i+j i j monsters[i+j] = 0 monsters[i+j] monsters i+j i j 0 System.out.println(count) System.out.println System.out System System.out count String[] args args public class Main {
    public static void main(String[] args){

        Scanner s = new Scanner(System.in);
        
        int yusha = s.nextInt();        // 勇者の数
        long monsters[] = new long[yusha + 1];    //　モンスターの数を格納する
        long strength[] = new long[yusha];        // 勇者の強さを格納する

        // モンスターを倒した数
        long count = 0;

        for (int i = 0; i < yusha+1; i++) {
            monsters[i] = s.nextInt();
        }

        for (int i = 0; i < yusha; i++) {
            strength[i] = s.nextInt();
        }

        // 勇者の数だけループ
        for (int i = 0; i < yusha; i++) {
            // 2つの街を守ろうとする
            for (int j = 0; j < 2; j++) {
                // 勇者よりモンスターが強い場合倒せる限り倒す
                if (monsters[i+j] >= strength[i]) {
                    count += strength[i];
                    monsters[i+j] = monsters[i+j] - strength[i];    // 残りモンスター数
                    strength[i] = 0;                // 勇者の余力
                } else {
                    count += monsters[j + i];   // 一つの街のモンスターをすべて倒す
                    strength[i] = strength[i] - monsters[i+j];  // 勇者の余力
                    monsters[i+j] = 0;    // 残りモンスター数
                }
            }
        }

        System.out.println(count);
    }
} public class Main {
    public static void main(String[] args){

        Scanner s = new Scanner(System.in);
        
        int yusha = s.nextInt();        // 勇者の数
        long monsters[] = new long[yusha + 1];    //　モンスターの数を格納する
        long strength[] = new long[yusha];        // 勇者の強さを格納する

        // モンスターを倒した数
        long count = 0;

        for (int i = 0; i < yusha+1; i++) {
            monsters[i] = s.nextInt();
        }

        for (int i = 0; i < yusha; i++) {
            strength[i] = s.nextInt();
        }

        // 勇者の数だけループ
        for (int i = 0; i < yusha; i++) {
            // 2つの街を守ろうとする
            for (int j = 0; j < 2; j++) {
                // 勇者よりモンスターが強い場合倒せる限り倒す
                if (monsters[i+j] >= strength[i]) {
                    count += strength[i];
                    monsters[i+j] = monsters[i+j] - strength[i];    // 残りモンスター数
                    strength[i] = 0;                // 勇者の余力
                } else {
                    count += monsters[j + i];   // 一つの街のモンスターをすべて倒す
                    strength[i] = strength[i] - monsters[i+j];  // 勇者の余力
                    monsters[i+j] = 0;    // 残りモンスター数
                }
            }
        }

        System.out.println(count);
    }
} Main
import java.util.*;


public class Main {
    public static void main(String[] args){

        Scanner s = new Scanner(System.in);
        
        int yusha = s.nextInt();        // 勇者の数
        long monsters[] = new long[yusha + 1];    //　モンスターの数を格納する
        long strength[] = new long[yusha];        // 勇者の強さを格納する

        // モンスターを倒した数
        long count = 0;

        for (int i = 0; i < yusha+1; i++) {
            monsters[i] = s.nextInt();
        }

        for (int i = 0; i < yusha; i++) {
            strength[i] = s.nextInt();
        }

        // 勇者の数だけループ
        for (int i = 0; i < yusha; i++) {
            // 2つの街を守ろうとする
            for (int j = 0; j < 2; j++) {
                // 勇者よりモンスターが強い場合倒せる限り倒す
                if (monsters[i+j] >= strength[i]) {
                    count += strength[i];
                    monsters[i+j] = monsters[i+j] - strength[i];    // 残りモンスター数
                    strength[i] = 0;                // 勇者の余力
                } else {
                    count += monsters[j + i];   // 一つの街のモンスターをすべて倒す
                    strength[i] = strength[i] - monsters[i+j];  // 勇者の余力
                    monsters[i+j] = 0;    // 残りモンスター数
                }
            }
        }

        System.out.println(count);
    }
}