fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int n,board[100001][2],dp[100001][2]; //1based, [idx][0,1]
  4. int main(){
  5. int tc;
  6. scanf("%d",&tc);
  7. while(tc--){
  8. scanf("%d",&n);
  9. for(int j=0; j<2; j++){
  10. for(int i=1; i<=n; i++){
  11. scanf("%d",&board[i][j]);
  12. }
  13. }
  14. memset(dp,0x00,sizeof(dp));
  15. dp[1][0]=board[1][0],dp[1][1]=board[1][1];
  16. dp[2][0]=board[1][1]+board[2][0],dp[2][1]=board[1][0]+dp[2][1];
  17. int ret=0;
  18. for(int i=3; i<=n; i++){
  19. for(int j=0; j<2; j++){
  20. dp[i][j]=max(dp[i-1][!j],dp[i-2][!j])+board[i][j];
  21. ret=max(ret,dp[i][j]);
  22. }
  23. }
  24. printf("%d\n",ret);
  25. }
  26. }
Success #stdin #stdout 0.01s 5360KB
stdin
1
5
50 10 100 20 40
30 50 70 10 60
stdout
210