#include using namespace std; using ll = long long; const int inf = (1 << 31) - 1; int N; int X[5010], A[5010]; ll dp[5010]; template void Fill(A (&arr)[N], const T &val){ fill((T*)arr, (T*)(arr + N), val); } template void chmin(T &a, T b){ a = min(a, b); } int main(void){ ios::sync_with_stdio(false); cin.tie(nullptr); cin >> N; for(int i = 0;i < N;i++)cin >> X[i]; for(int i = 1;i <= N;i++)cin >> A[i]; for(int i = 0;i < N;i++)A[i + 1] ^= A[i]; Fill(dp, inf); dp[0] = 0; for(int i = 0;i < N;i++){ for(int j = i + 1;j <= N;j++){ chmin(dp[j], dp[i] + X[j - 1] - X[i] + (A[j] ^ A[i])); } } cout << dp[N] << endl; return 0; }