[백준 9465번] 스티커
2017. 7. 24. 23:21ㆍ알고리즘/백준
반응형
소스코드
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 33 34 35 36 37 38 | #include <iostream> using namespace std; int Max(int a, int b) { return a > b ? a : b; } int main() { int tc; cin >> tc; while (tc > 0) { int n,num[2][100001],dp[2][100001]; cin >> n; for (int i = 0; i < n; i++) cin >> num[0][i]; for (int i = 0; i < n; i++) cin >> num[1][i]; dp[0][0] = num[0][0]; dp[1][0] = num[1][0]; dp[0][1] = num[1][0] + num[0][1]; dp[1][1] = num[0][0] + num[1][1]; dp[0][2] = Max(num[0][2] + num[1][1] + num[0][0], num[0][2] + num[1][0]); dp[1][2] = Max(num[1][2] + num[0][1] + num[1][0], num[1][2] + num[0][0]); for (int i = 3; i < n; i++) { int a = Max(num[0][i] + dp[1][i-1], num[0][i] + num[1][i-1] + dp[0][i-3]); int b = Max(num[1][i] + dp[0][i-1], num[1][i] + num[0][i-1] + dp[1][i-3]); dp[0][i] = Max(a, num[0][i] + dp[1][i-2]); dp[1][i] = Max(b, num[1][i] + dp[0][i-2]); } cout << Max(dp[0][n - 1], dp[1][n - 1]) << '\n'; tc--; } return 0; } | cs |
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준 2493번] 탑 (0) | 2017.07.26 |
---|---|
[백준 2879번] 코딩은 예쁘게 (0) | 2017.07.25 |
[백준 1963번] 소수 경로 (0) | 2017.07.24 |
[백준 10819번] 차이를 최대로 (0) | 2017.07.23 |
[백준 1107번] 리모컨 (2) | 2017.07.23 |