#include #include using namespace std; const int inf = 0x3f3f3f3f, kMaxN = 1000005; ifstream in("points.in"); int dp[kMaxN][4], e[kMaxN][4]; void get_max(int &a, int b) { if (a < b) a = b; } int main() { int n; cin >> n; for (int i = 1; i <= n; ++i) for (int j = 1; j < 4; ++j) cin >> e[i][j]; for (int i = 0; i <= n + 1; ++i) for (int j = 0; j < 4; ++j) dp[i][j] = -inf; dp[1][1] = dp[1][2] = 0; for (int i = 2; i <= n + 1; ++i) { get_max(dp[i][1], dp[i - 1][1]); get_max(dp[i][2], dp[i - 1][1]); get_max(dp[i][3], dp[i - 1][2] + e[i - 1][2]); get_max(dp[i][1], dp[i - 1][2] + e[i - 1][1]); get_max(dp[i][1], dp[i - 1][3] + e[i - 1][2]); get_max(dp[i][3], dp[i - 1][3] + e[i - 1][3]); } cout << dp[n + 1][1] << '\n'; return 0; }