#include <iostream> #include <algorithm> #include <string.h> using namespace std; int N; int map[100010][3]; int dp_max[2][3]; int dp_min[2][3]; int main(void) { // freopen("B2096_input.txt", "r", stdin); cin >> N; for(int i = 0; i < N; i++) { cin >> map[i][0] >> map[i][1] >> map[i][2]; dp_max[1][0] = map[i][0] + max(dp_max[0][0], dp_max[0][1]); dp_max[1][1] = map[i][1] + max({dp_max[0][0], dp_max[0][1], dp_max[0][2]}); dp_max[1][2] = map[i][2] + max(dp_max[0][1], dp_max[0][2]); dp_max[0][0] = dp_max[1][0]; dp_max[0][1] = dp_max[1][1]; dp_max[0][2] = dp_max[1][2]; dp_min[1][0] = map[i][0] + min(dp_min[0][0], dp_min[0][1]); dp_min[1][1] = map[i][1] + min({dp_min[0][0], dp_min[0][1], dp_min[0][2]}); dp_min[1][2] = map[i][2] + min(dp_min[0][1], dp_min[0][2]); dp_min[0][0] = dp_min[1][0]; dp_min[0][1] = dp_min[1][1]; dp_min[0][2] = dp_min[1][2]; } cout << max({dp_max[0][0], dp_max[0][1], dp_max[0][2]}) << " " << min({dp_min[0][0], dp_min[0][1], dp_min[0][2]}); return 0; } | cs |
'Baekjoon > DP' 카테고리의 다른 글
[백준 9507] Generations of Tribbles (DP) (C/C++) (0) | 2020.03.22 |
---|---|
[백준 1904] 타일 (DP) (C/C++) (0) | 2020.03.22 |
[백준 1915] 가장 큰 정사각형 찾기 (DP) (C/C++) (★) (0) | 2020.03.17 |
[백준 11051] 이항 계수 2 (DP) (C/C++) (0) | 2020.03.17 |
[백준 2186] 문자판 (DFS, DP) (C/C++) (★★★) (0) | 2020.03.17 |