- toc {:toc}
νμ΄
μ€ν°μ»€ νλλ₯Ό λΌμ΄ λ΄λ©΄ μΌμͺ½, μ€λ₯Έμͺ½, μ, μλλ μ¬μ©ν μ μλ€. μ¦, λκ°μ μ μλ μ€ν°μ»€λ₯Ό κ°μ Έμ¬ μ μλ€. μλμ κ°λ€.
λλ, μλμ κ°μ΄ μ νν μ μλ€.
μ νλ₯Ό μ΄ν΄νκΈ° μν΄ μμλ₯Ό λ€λ©΄ λ€μκ³Ό κ°λ€.
맨 μΌμͺ½ μλ 30μμ μμνλ€κ³ νμ λ λκ° λ λ² 10, 70μ μ»λ κ²λ³΄λ€ 3μ΄ λκ°μΈ 100μ μ»λ κ²μ΄ λ μ μκ° λμ μ μκΈ° λλ¬Έμ λ μΉΈ λ€λ μκ°ν΄μ€μΌ νλ€. μΈ μΉΈ λ€μΈ 4μ΄μ κ²½μ°λ‘ λ°λ‘ μ ννλ κ²½μ°λ μμ 2μ΄, 3μ΄ μ€ νλλ₯Ό μ ννλ κ²μ΄ λ°λμ λ ν° κ°μ λμΆνκΈ° λλ¬Έμ ν΄λΉνμ§ μλλ€.
λ§μ½, 50μμ μμνλ€κ³ νμ λ μ νν΄μ 3μ΄μ 100μ λ°λ‘ λνλ κ²λ κ³ λ €ν΄μ€μΌ ν κΉ? ν΄μ€ νμ μλ€. 3μ΄μ 100μ λνλ κ²½μ°μλ 2μ΄μ 50μ λνλ κ²μ΄ λ λμ κ°μ λμΆνκΈ° λλ¬Έμ λκ°μ κ²½μ°λ§ κ³ λ €ν΄μ£Όλ©΄ λλ€.
#include <bits/stdc++.h>
using namespace std;
int n;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
int t;
cin >> t;
while(t--){
int stickers[2][100005] = {0,};
int dp[2][100005] = {0,};
cin >> n;
for(int i = 0; i < 2; i++){
for(int j = 0; j < n; j++){
cin >> stickers[i][j];
}
}
dp[0][0] = stickers[0][0];
dp[1][0] = stickers[1][0];
dp[0][1] = stickers[0][1] + dp[1][0];
dp[1][1] = stickers[1][1] + dp[0][0];
for(int i = 2; i < n; i++){
dp[0][i] = max(dp[1][i-2], dp[1][i-1]) + stickers[0][i];
dp[1][i] = max(dp[0][i-2], dp[0][i-1]) + stickers[1][i];
}
cout << max(dp[0][n-1], dp[1][n-1]) << '\n';
}
return 0;
}