import java.io.*;
import java.util.*;

public class Mike {
    static final long F = 2_000_000L;
    static int n;
    static long mini = Long.MAX_VALUE;
    static long[] fs, ps, ts;

    static void eval(long[] es) {
        long t = 0;
        for (int i = 0; i < n - 1; ++i) {
            long w = F;
            long pi = ps[i];
            long di = Math.abs(fs[i + 1] - fs[i]);
            long ti = ts[i];
            for (long e : es) {
                long mod = (e + t) % F;
                long cand = pi - mod;
                if (cand < 0) cand += F;
                if (cand < w) w = cand;
            }
            t += w + di + ti;
        }
        if (t < mini) mini = t;
    }

    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        ++n;
        fs = new long[n];
        for (int i = 1; i < n; ++i) fs[i] = sc.nextLong();
        ts = new long[n - 1];
        for (int i = 0; i < n - 1; ++i) ts[i] = sc.nextLong();
        ps = new long[n - 1];
        for (int i = 0; i < n - 1; ++i) ps[i] = fs[i] < fs[i + 1] ? fs[i] : F - fs[i];
        long[] qs = new long[n - 1];
        for (int i = 0; i < n - 1; ++i) qs[i] = (ps[i] + Math.abs(fs[i + 1] - fs[i]) + ts[i]) % F;
        long[] es = new long[4];
        eval(es);
        for (int i1 = 0; i1 < n - 2; ++i1) {
            es[1] = (es[0] + ps[i1 + 1] - qs[i1] + F) % F;
            for (int b2 = 0; b2 < 2; ++b2)
                for (int i2 = 0; i2 < n - 2; ++i2) {
                    es[2] = (es[b2] + ps[i2 + 1] - qs[i2] + F) % F;
                    for (int b3 = 0; b3 < 3; ++b3)
                        for (int i3 = 0; i3 < n - 2; ++i3) {
                            es[3] = (es[b3] + ps[i3 + 1] - qs[i3] + F) % F;
                            eval(es);
                        }
                }
        }
        System.out.println(mini);
    }
}
