N = int(input())
INF = float('inf')
arr = [list(map(int,input().split())) for _ in range(N)]
result = float('inf')
for first_room in range(3):
dp = [[INF]*3 for _ in range(N)]
dp[0][first_room] = arr[0][first_room]
for i in range(1,N-1):
for k in range(3):
for j in range(3):
if k !=j:
dp[i][k] = min(dp[i-1][j]+arr[i][k],dp[i][k])
for i in range(3):
for j in range(3):
if i != j and i != first_room:
dp[N-1][i] = min(dp[N-2][j]+arr[N-1][i],dp[N-1][i])
result = min(result,min(dp[N-1]))
print(result)

 

 

 

N = int(input())
arr = [list(map(int,input().split())) for _ in range(N)]
INF = float('inf')
result = INF
for first_room_color in range(3):
dp = [[0]*3 for _ in range(N)]
for i in range(3):
if i == first_room_color:
dp[0][i] = arr[0][i]
else:
dp[0][i] = INF
for ind in range(1,N):
dp[ind][0] = arr[ind][0] + min(dp[ind-1][1],dp[ind-1][2])
dp[ind][1] = arr[ind][1] + min(dp[ind-1][0],dp[ind-1][2])
dp[ind][2] = arr[ind][2] + min(dp[ind-1][0],dp[ind-1][1])
for last_room_color in range(3):
if last_room_color != first_room_color:
if result > dp[N-1][last_room_color]:
result = dp[N-1][last_room_color]
print(result)

 

+ Recent posts