#include <bits/stdc++.h>
using namespace std;

int tempo_massimo(int N, int a[], int b[])
{

    vector<vector<int>> dp(N, vector<int> (3));
    dp[0][0] = 0;
    dp[0][1] = a[0];
    dp[0][2] = b[0];

    for (int i = 1; i < N; i++) {
        int t = max({dp[i-1][0], dp[i-1][1], dp[i-1][2]});
        dp[i][0] = t;
        dp[i][1] = t+a[i];
        dp[i][2] = (i-2 >= 0 ? max({dp[i-2][0], dp[i-2][1], dp[i-2][2]}) : 0) + b[i];
    }

    return max({dp[N-1][0], dp[N-1][1], dp[N-1][2]});
}
