------
## 最终结论
```python
def max_sum_rectangular_grid(grid, n):
    if n == 0:
        return 0
    if n == 1:
        return max(grid[0][0], grid[1][0])
    
    # Initialize dp array
    dp = [0] * n
    
    # Base cases
    dp[0] = max(grid[0][0], grid[1][0])
    dp[1] = max(grid[0][1], grid[1][1], dp[0])  # Choose max of column 1 or previous
    
    for i in range(2, n):
        # Choose the maximum of the current column or the best from two columns back plus current
        dp[i] = max(dp[i-1], grid[0][i] + (dp[i-2] if i > 1 else 0), grid[1][i] + (dp[i-2] if i > 1 else 0))
    
    return dp[n-1]
```