//https://www.acmicpc.net/problem/9465 #include <iostream> | |
#include <algorithm> | |
using namespace std; | |
int score[2][100001]; | |
int dp[2][100001]; | |
int main() | |
{ | |
int t; | |
cin >> t; | |
for(int tc=0; tc<t; tc++) | |
{ | |
int n; | |
cin >> n; | |
for(int i=1; i<=n; i++) cin >> score[0][i]; | |
for(int i=1; i<=n; i++) cin >> score[1][i]; | |
dp[0][1]=score[0][1]; | |
dp[1][1]=score[1][1]; | |
dp[0][2]=score[1][1]+score[0][2]; | |
dp[1][2]=score[0][1]+score[1][2]; | |
for(int i=2; i<=n; i++) | |
{ | |
for(int j=0; j<2; j++){ | |
dp[j][i] = max(dp[1 - j][i - 1], dp[1 - j][i - 2]) + score[j][i]; | |
} | |
} | |
cout << max(dp[0][n],dp[1][n])<<endl; | |
for(int i=0; i<=n; i++) dp[0][i]=dp[1][i]=0; | |
} | |
} |
'알고리즘 문제 풀이 > 1DP_과제(~180615)' 카테고리의 다른 글
180302_9506_약수들의 합 (0) | 2018.03.02 |
---|---|
180302_2600_구슬게임 (0) | 2018.03.02 |
180301_1931_회의실 배정 (0) | 2018.03.01 |
180301_1920_수 찾기 (0) | 2018.03.01 |
180228_10430_나머지 (0) | 2018.02.28 |