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;
}