fork download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. class Codechef
  6. {
  7. public static void main (String[] args) throws java.lang.Exception
  8. {
  9. // your code goes here
  10. Scanner sc=new Scanner(System.in);
  11. int t=sc.nextInt();
  12. while(t-->0){
  13. int n=sc.nextInt();
  14. int[]a=new int[n+1];
  15. int[]b=new int[n+1];
  16. for(int i=1;i<=n;i++)a[i]=sc.nextInt();
  17. for(int i=1;i<=n;i++)b[i]=sc.nextInt();
  18. int out=solveBro(n,a,b);
  19. System.out.println(out);
  20. }
  21. }
  22. public static int solveBro(int n,int[]a,int[]b){
  23. int[]dp1=new int[n+1];
  24. int[]dp2=new int[n+1];
  25. if(b[1]==1){
  26. dp1[1]=a[1];
  27. }
  28. dp2[1]=a[1];
  29. for(int i=2;i<=n;i++){
  30. if(b[i]==0){
  31. dp1[i]=dp1[i-1];
  32. dp2[i]=a[i]+dp1[i-1];
  33. }
  34. else{
  35. dp1[i]=Math.max(a[i]+dp1[i-1],0+dp2[i-1]);
  36. dp2[i]=a[i]+dp2[i-1];
  37. }
  38. }
  39. return dp1[n];
  40. }
  41. }
  42.  
Success #stdin #stdout 0.11s 56560KB
stdin
2
5
10 5 8 9 6
0 1 1 0 1
5
1 2 4 3 1
0 1 0 1 0
stdout
27
6