[백준 4883번] 삼각 그래프

2017. 8. 15. 12:10알고리즘/백준

반응형





소스코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
using namespace std;
 
int Min(int a, int b) {
    return a > b ? b : a;
}
 
int main() {
    int n, dp[100001][3], tc = 1;
    while (1) {
        cin >> n;
        if (!n)
            break;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < 3; j++) {
                cin >> dp[i][j];
            }
        }
        
        dp[1][0= dp[1][0]+dp[0][1];
        dp[1][1= Min(dp[1][1]+dp[1][0],Min(dp[0][1]+dp[0][2]+dp[1][1], dp[1][1]+dp[0][1]));
        dp[1][2= Min(dp[1][1]+dp[1][2], Min(dp[1][2+ dp[0][1], dp[1][2]+dp[0][1]+dp[0][2]));
 
        for (int i = 2; i < n; i++) {
            dp[i][0+= Min(dp[i - 1][0], Min(dp[i - 1][1],dp[i-1][1]));
            dp[i][1+= Min(Min(dp[i][0],dp[i-1][0]), Min(dp[i-1][2],dp[i-1][1]));
            dp[i][2+= Min(dp[i][1], Min(dp[i - 1][2], dp[i - 1][1]));
        }
        cout << tc++ << ". " << dp[n-1][1<< '\n';
    }
    return 0;
}
cs


반응형

'알고리즘 > 백준' 카테고리의 다른 글

[백준 2688번] 줄어들지 않아  (0) 2017.08.21
[백준 1890번] 점프  (0) 2017.08.15
[백준 1057번] 토너먼트  (0) 2017.08.14
[백준 3055번] 탈출  (0) 2017.08.09
[백준 7490번] 0 만들기  (2) 2017.08.08