https://www.acmicpc.net/problem/1149

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

vector<vector<int> > RGB(vector<vector<int> > house) {
	int len = house.size();

	for (int i = 1; i < len; i++) {
		house[i][0] += min(house[i - 1][1], house[i - 1][2]);
		house[i][1] += min(house[i - 1][0], house[i - 1][2]);
		house[i][2] += min(house[i - 1][1], house[i - 1][0]);
	}

	return house;
}

int main() {
	int answer = 0;
	int len = 0;
	cin >> len;
	vector<vector<int> > house(len, vector <int>(3));
	for (int i = 0; i < len; i++) {
		cin >> house[i][0];
		cin >> house[i][1];
		cin >> house[i][2];
	}
	house = RGB(house);
	answer = min({ house[len - 1][0], house[len - 1][1], house[len - 1][2] });

	cout << answer;

	return 0;
}