문제
RGB 마을의 사람들이 자신들의 집을 빨간색, 녹색, 혹은 파란색으로 칠하고자 하는데, 한 색깔로 치우치는 것을 방지하기 위해서 이웃한 집의 색깔과는 다른 색으로 칠하고자 한다. RGB 마을에선 N개의 집이 무한한 직선거리 위에 놓여 있으며, i번째 집에 대한 이웃은 i-1번째 집과 i+1 집이다. 1번째(맨 처음) 집의 경우 2번째 집 만이 이웃이며, N번째(마지막) 집의 경우는 N-1번째 집 만이 이웃이다.
헌데, 각 집에 대해서 선택한 색을 칠하는 데 비용이 다르기 때문에, 칠하는 비용의 합이 최소가 되게 하고자 한다. 이러한 것을 가능하게 하는 프로그램을 작성하라.
제출파일의 이름은 2283.cpp로하고 실행시간은 1초를 넘을 수 없다.
입력
입력파일은 INPUT.TXT로 한다. 입력의 첫 번째 줄에는 집의 개수 N이 입력된다. N은 1 이상 100 이하의 정수다. 그 다음 줄부터 N개의 줄에는 집과 색에 대한 비용 R, G, B가 입력되며, R, G, B는 해당 집에 빨간색, 녹색, 파란색으로 칠했을 때의 비용을 뜻한다. 이는 1이상 1,000이하의 정수이다.
2번째 줄에는 1번째 집의 비용이, 3번째 줄에는 2번째 집의 비용이, ..., N+1번째 줄에는 N번째집의 비용이 입력된다.
출력
출력파일은 OUTPUT.TXT로 한다. 입력에 대해 조건을 어기지 않고 색칠을 했을 때 드는 최소 비용을 출력한다.
예제
3
1 100 100
100 1 100
100 100 1
3
힌트