#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; void Main() { int N; cin >> N; vector X(N),A(N); for(int i = 0;i < N;i++) { cin >> X[i]; } for(int i = 0;i < N;i++) { cin >> A[i]; } vector S(N + 1); for(int i = 0;i < N;i++) { S[i + 1] = S[i] ^ A[i]; } vector dp(N + 1,(long long)1e18); dp[0] = 0; for(int i = 1;i <= N;i++) { for(int j = 0;j < i;j++) { int x = S[i] ^ S[j]; int d = X[i - 1]; d -= X[j]; dp[i] = min(dp[i],dp[j] + x + d); } } cout << dp[N] << "\n"; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int tt = 1; /* cin >> tt; */ while(tt--) Main(); }