반응형

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

 

2096번: 내려가기

첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다.

www.acmicpc.net

 

i번 행의 0번은, i-1번행의 [0, 1]번에서 내려올 수 있습니다.

i번 행의 1번은, i-1번행의 [0, 1, 2]번에서 내려올 수 있습니다.

i번 행의 2번은, i-1번행의 [1, 2]번에서 내려올 수 있습니다.

이전 행에서의 최소 점수와 최대 비용을 이용해서 각 행에서의 최소 점수와 최대 점수를 구해주었습니다.

 

#include <iostream>
#include <algorithm>
using namespace std;
int a[2][3] = { 0 }, b[2][3] = { 0 }, n;
int main() {
	scanf("%d", &n);
	while (n--) {
		for (int i = 0; i < 3 && scanf("%d", &a[0][i]); i++)
			a[1][i] = a[0][i];
		a[0][0] += max({ b[0][0], b[0][1] });
		a[0][1] += max({ b[0][0], b[0][1], b[0][2] });
		a[0][2] += max({ b[0][1], b[0][2] });
		a[1][0] += min({ b[1][0], b[1][1] });
		a[1][1] += min({ b[1][0], b[1][1], b[1][2] });
		a[1][2] += min({ b[1][1], b[1][2] });
		for (int i = 0; i < 3; i++) {
			b[0][i] = a[0][i];
			b[1][i] = a[1][i];
		}
	}
	printf("%d %d", max({ b[0][0], b[0][1], b[0][2] }), min({ b[1][0], b[1][1], b[1][2] }));
}
반응형

'Algorithm' 카테고리의 다른 글

백준 4811 : 알약  (0) 2021.11.16
백준 2470 : 두 용액  (0) 2021.11.16
백준 4803 : 트리  (0) 2021.11.16
백준 2887 : 행성 터널  (0) 2021.11.16
백준 4386 : 별자리 만들기  (0) 2021.11.16

+ Recent posts