#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define MAXN 1000001 #define INF 1000000000 int N; int A[MAXN], B[MAXN], C[MAXN]; int dp[2][3]; int main() { // freopen("date.in", "r", stdin); // freopen("date.out","w", stdout); scanf("%d", &N); for(int i = 0; i < N; i++) scanf("%d %d %d", &A[i], &B[i], &C[i]); fill(dp[0], dp[0] + 3, -INF); dp[0][0] = 0; int line = 1; for(int i = 0; i < N; i++) { fill(dp[line], dp[line] + 3, -INF); for(int j = 0; j < 3; j++) dp[line][0] = max(dp[line][0], dp[1 - line][j]); dp[line][1] = dp[1 - line][0] + A[i]; dp[line][2] = dp[1 - line][1] - A[i - 1] + B[i - 1] + B[i]; dp[line][2] = max(dp[line][2], dp[1 - line][2] - B[i - 1] + C[i - 1] + B[i]); line = 1 - line; } line = 1 - line; int ans = max(dp[line][0], max(dp[line][1], dp[line][2])); printf("%d\n", ans); return 0; }