#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; long long inf = 1001001001001001001; long long dp[5050]; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N; cin >> N; vectorX(N),A(N); for(int i = 0; i < N; i++) { cin >> X[i]; } for(int i = 0; i < N; i++) { cin >> A[i]; } for(int i = 0; i <= N; i++) { dp[i] = inf; } dp[0] = 0; for(int i = 0; i < N; i++) { int sum = 0; for(int j = i+1; j <= N; j++) { sum ^= A[j-1]; dp[j] = min(dp[j],dp[i]+sum+X[j-1]-X[i]); } } cout << dp[N] << "\n"; }