fork download
  1. // package UPSOLVING.Codeforces.contest_1028;
  2. import java.util.*;
  3. class Ideone
  4. {
  5. static int mod= 998244353;
  6. static int size=100000+1;
  7. static long bin[]=new long[size];
  8.  
  9. public static void pow()
  10. {
  11. bin[0]=1;
  12. for(int i=1;i<size;i++)
  13. bin[i]=(bin[i-1]*2)%mod;
  14.  
  15. }
  16.  
  17. public static void main(String[] args)
  18. {
  19. pow();
  20. Scanner sc=new Scanner(System.in);
  21. int t=sc.nextInt();
  22. while(t-->0)
  23. {
  24. int n=sc.nextInt();
  25. long a[]=new long[n];
  26. long b[]=new long[n];
  27. for(int i=0;i<n;i++)
  28. a[i]=sc.nextLong();
  29.  
  30. for(int i=0;i<n;i++)
  31. b[i]=sc.nextLong();
  32.  
  33. int posa[]=new int[n];
  34. int posb[]=new int[n];
  35. for(int i=0;i<n;i++)
  36. {
  37. posa[(int)a[i]]=i;
  38. posb[(int)b[i]]=i;
  39. }
  40.  
  41. long maxa=0;
  42. long maxb=0;
  43. List<Long> ans=new ArrayList<>();
  44. for(int i=0;i<n;i++)
  45. {
  46. maxa=Math.max(maxa,a[i]);
  47. maxb=Math.max(maxb,b[i]);
  48.  
  49. long x=maxa;
  50. long y=maxb;
  51.  
  52. long aval=a[i-posb[(int)y]];
  53. long bval=b[i-posa[(int)x]];
  54. long val=0;
  55.  
  56. if(x>y || (x==y && bval>= aval))
  57. {
  58. val= (bin[(int)x]+ bin[(int)bval])%mod;
  59. }
  60. else
  61. {
  62. val=(bin[(int ) y]+bin[(int )aval])%mod;
  63. }
  64. ans.add(val);
  65.  
  66.  
  67. }
  68.  
  69. for(long ele:ans)
  70. System.out.print(ele+" ");
  71. System.out.println();
  72.  
  73. }
  74.  
  75.  
  76.  
  77. }
  78.  
  79. }
  80.  
Success #stdin #stdout 0.23s 58900KB
stdin
3
3
0 2 1
1 2 0
5
0 1 2 3 4
4 3 2 1 0
10
5 8 9 3 4 0 2 7 1 6
9 5 1 4 0 3 2 8 7 6
stdout
3 6 8 
17 18 20 24 32 
544 768 1024 544 528 528 516 640 516 768