#include using namespace std; void fast_io() { ios_base::sync_with_stdio(false); cin.tie(nullptr); } int main() { fast_io(); int n; cin >> n; vector a(n), b(n), c(n); for (int i = 0; i < n; i++) { cin >> a[i]; } for (int i = 0; i < n; i++) { cin >> b[i]; } for (int i = 0; i < n; i++) { cin >> c[i]; } vector> dp(n + 1, vector(6, -1e18)); dp[0][0] = 0; for (int i = 0; i < n; i++) { // 0 -> 0, 1, 2 dp[i + 1][0] = max(dp[i + 1][0], dp[i][0] + a[i]); dp[i + 1][1] = max(dp[i + 1][1], dp[i][0] + b[i]); dp[i + 1][2] = max(dp[i + 1][2], dp[i][0] + c[i]); // 1 -> 2, 5 dp[i + 1][1] = max(dp[i + 1][1], dp[i][1] + b[i]); dp[i + 1][2] = max(dp[i + 1][2], dp[i][1] + c[i]); dp[i + 1][5] = max(dp[i + 1][5], dp[i][1] + a[i]); // 2 -> 2, 3 dp[i + 1][2] = max(dp[i + 1][2], dp[i][2] + c[i]); dp[i + 1][3] = max(dp[i + 1][3], dp[i][2] + b[i]); // 3 -> 3, 4 dp[i + 1][3] = max(dp[i + 1][3], dp[i][3] + b[i]); dp[i + 1][4] = max(dp[i + 1][4], dp[i][3] + a[i]); // 4 -> 4 dp[i + 1][4] = max(dp[i + 1][4], dp[i][4] + a[i]); // 5 -> 5, 3 dp[i + 1][5] = max(dp[i + 1][5], dp[i][5] + a[i]); dp[i + 1][3] = max(dp[i + 1][3], dp[i][5] + b[i]); } cout << *max_element(dp[n].begin(), dp[n].end()) << endl; }