Statistics

Problem Statement for "DivisibleSetDiv2"

Problem Statement

You are given a int[] b containing a sequence of n positive integers: b[0], ..., b[n-1]. We are now looking for another sequence a[0], ..., a[n-1]. This sequence should have the following properties:
  • Each a[i] should be a number of the form 2^x[i] where x[i] is some positive integer. In other words, each a[i] is one of the numbers 2, 4, 8, 16, ...
  • For each i, the value a[i]^b[i] (that is, a[i] to the power b[i]) should be divisible by P, where P is the product of all a[i].
Determine whether there is at least one sequence with the desired properties. Return "Possible" (quotes for clarity) if such a sequence exists and "Impossible" otherwise.

Definition

Class:
DivisibleSetDiv2
Method:
isPossible
Parameters:
int[]
Returns:
String
Method signature:
String isPossible(int[] b)
(be sure your method is public)

Constraints

  • b will contain between 1 and 50 elements, inclusive.
  • Each element in b will be between 1 and 10, inclusive.

Examples

  1. {3,2}

    Returns: "Possible"

    One valid sequence is the sequence {2, 2}. That is, a[0] = a[1] = 2. Clearly, each a[i] is a power of two not smaller than 2. The product of all a[i] is 2*2 = 4. Both a[0]^b[0] = 2^3 = 8 and a[1]^b[1] = 2^2 = 4 are divisible by 4.

  2. {3,3,3}

    Returns: "Possible"

    Here, one valid sequence is {2, 2, 2}.

  3. {1,10}

    Returns: "Impossible"

    Suppose that a[0] = x and a[1] = y. The value a[0]^b[0] = x^1 should be divisible by x*y. This is only possible for y = 1. However, 1 is not a positive power of two, so we cannot have a[1] = 1.

  4. {5,3,9,7}

    Returns: "Possible"

  5. {1}

    Returns: "Possible"

  6. {7,10,2,7,9}

    Returns: "Possible"

  7. {10,7,7,3,8,9}

    Returns: "Possible"

  8. {1}

    Returns: "Possible"

  9. {8,8,4,2}

    Returns: "Possible"

  10. {2,8,3}

    Returns: "Possible"

  11. {4,3,3}

    Returns: "Possible"

  12. {9,9,6,3,9,7}

    Returns: "Possible"

  13. {9,5,8,3,9,10}

    Returns: "Possible"

  14. {7,6,10,8,9,10,7,9}

    Returns: "Possible"

  15. {3,9,10,10,3}

    Returns: "Possible"

  16. {9,7,7,4,3}

    Returns: "Possible"

  17. {8,2,8,7,10}

    Returns: "Possible"

  18. {10,3,3,7}

    Returns: "Possible"

  19. {6,3,10,8,5}

    Returns: "Possible"

  20. {10,5,7,5,9,5}

    Returns: "Possible"

  21. {8,9,9,2,9}

    Returns: "Possible"

  22. {1}

    Returns: "Possible"

  23. {9,3,5,3}

    Returns: "Possible"

  24. {5,4,9,9,7,6}

    Returns: "Possible"

  25. {2,10,3}

    Returns: "Possible"

  26. {6,3,3,9}

    Returns: "Possible"

  27. {1}

    Returns: "Possible"

  28. {2, 3, 10}

    Returns: "Possible"

    One valid sequence is {8, 4, 2}.

  29. {4,8,9,3,9}

    Returns: "Possible"

  30. {9,6,6,2}

    Returns: "Possible"

  31. {8,8,9,7,3,7}

    Returns: "Possible"

  32. {7,10,4,6,3}

    Returns: "Possible"

  33. {2,2}

    Returns: "Possible"

  34. {6,9,8,9,10,8,5}

    Returns: "Possible"

  35. {10,10,10,10,10,10,10,10,10,10}

    Returns: "Possible"

  36. {10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10}

    Returns: "Impossible"

  37. {7,7,7,7,7,7,7}

    Returns: "Possible"

  38. {1}

    Returns: "Possible"

  39. {7,6}

    Returns: "Possible"

  40. {6,9,3,9}

    Returns: "Possible"

  41. {3,2,1,7,7,10}

    Returns: "Impossible"

  42. {8,3,8,6,7,5,8,1}

    Returns: "Impossible"

  43. {9,1,3,6,9,3,9,9,6,9}

    Returns: "Impossible"

  44. {2,5,6,7,8,4,7,10,5,2,2,7,9,8,3,1,9,1,8,4,3,8,4,6,4,1,8,7,7,9,9,6}

    Returns: "Impossible"

  45. {4,6,7,7,3,5,5,1,5,3,4,9,2,10,7,10,4,6,9,9,4,8,3,1,6,9,2,7,1,2,6,1,6,1,4,4}

    Returns: "Impossible"

  46. {1,1,5,7,8,4,5,2,7,1,6,9,7,9,4,3,9,3,6,6,2,7,10,5,1,4,5,6,8,3,3,9,2,6,6,2,4,10}

    Returns: "Impossible"

  47. {7,6,2,7,3,6,7,8,1,6,9,10,5,2,10,9,4,3,9,2,2,2,2,1,5,5,7,2,10,5,2,1,5,4,8,3,5,3,6,2}

    Returns: "Impossible"

  48. {3,3,9,7,3,6,9,8,5,7,2,5,5,7,10,2,5,10,3,4,7,1,4,1,1,9,3,2,7,1,5,1,9,4,3,5,2,4,1,7,10,5}

    Returns: "Impossible"

  49. {8,4,4,7,10,4,8,9,6,2,7,4,2,2,10,5,9,9,2,3,7,6,1,1,10,1,8,7,3,1,3,7,9,3,10,5,7,2,1,7,2,6,4,5}

    Returns: "Impossible"

  50. {10,4,9,10,9,10,10,10,5,7,3,8,7,4,9,8,3,10,8,5,3,1,1,6,9,6,2,5,9,10,2,3,8,10,6,2,1,7,2,6,2,9,4,10,6,1}

    Returns: "Impossible"

  51. {3,9,9,8,7,6,9,2,8,9,9,5,6,3,2,3,3,9,1,5,4,6,3,6,3,8,3,8,8,7,7,3,4,1,7,3,6,9,8,10,4,8,9,1,6,1,2,4}

    Returns: "Impossible"

  52. {8,6,4,9,7,1,7,8,4,3,1,2,1,2,6,1,5,9,1,9,8,7,4,10,8,3,8,9,9,2,3,6,7,2,6,9,6,3,2,6,4,7,6,5,4,8,1,10,8,6}

    Returns: "Impossible"

  53. {4,4,2}

    Returns: "Possible"

  54. {2,3,6}

    Returns: "Possible"

  55. {3,3,6,6}

    Returns: "Possible"

  56. {3,6,3,6}

    Returns: "Possible"

  57. {10,5,2,5}

    Returns: "Possible"

  58. {3, 3, 3, 3}

    Returns: "Impossible"

  59. {7,7,7,7,7,7,7}

    Returns: "Possible"

  60. {9,9,9,9,9,9,9,9,9}

    Returns: "Possible"

  61. {9,3,3,9,9}

    Returns: "Possible"

  62. {1}

    Returns: "Possible"

  63. {2,2}

    Returns: "Possible"

  64. {2,3,6}

    Returns: "Possible"

  65. {2,4,4}

    Returns: "Possible"

  66. {2,4,8,8}

    Returns: "Possible"

  67. {2,5,5,10}

    Returns: "Possible"

  68. {2,5,10,10,10}

    Returns: "Possible"

  69. {2,6,6,6}

    Returns: "Possible"

  70. {2,6,8,9,10}

    Returns: "Impossible"

  71. {2,6,9,9,9}

    Returns: "Possible"

  72. {2,8,8,8,8}

    Returns: "Possible"

  73. {2,10,10,10,10,10}

    Returns: "Possible"

  74. {3,3,3}

    Returns: "Possible"

  75. {3,3,6,6}

    Returns: "Possible"

  76. {3,3,8,9,10}

    Returns: "Impossible"

  77. {3,3,9,9,9}

    Returns: "Possible"

  78. {3,4,4,6}

    Returns: "Possible"

  79. {3,4,6,8,8}

    Returns: "Possible"

  80. {3,5,5,6,10}

    Returns: "Possible"

  81. {3,5,5,7,8}

    Returns: "Impossible"

  82. {3,5,6,10,10,10}

    Returns: "Possible"

  83. {3,5,7,8,10,10}

    Returns: "Impossible"

  84. {3,5,7,9,9,10}

    Returns: "Possible"

  85. {3,6,6,6,6}

    Returns: "Possible"

  86. {3,6,6,8,9,10}

    Returns: "Impossible"

  87. {3,6,6,9,9,9}

    Returns: "Possible"

  88. {3,6,8,8,8,8}

    Returns: "Possible"

  89. {3,7,7,7,8,9}

    Returns: "Possible"

  90. {4,4,4,4}

    Returns: "Possible"

  91. {4,4,4,8,8}

    Returns: "Possible"

  92. {4,4,5,5,10}

    Returns: "Possible"

  93. {4,4,5,10,10,10}

    Returns: "Possible"

  94. {4,4,6,6,6}

    Returns: "Possible"

  95. {4,4,6,8,9,10}

    Returns: "Impossible"

  96. {4,4,6,9,9,9}

    Returns: "Possible"

  97. {4,4,8,8,8,8}

    Returns: "Possible"

  98. {4,5,5,8,8,10}

    Returns: "Possible"

  99. {4,5,5,8,9,9}

    Returns: "Possible"

  100. {4,5,6,7,7,10}

    Returns: "Impossible"

  101. {4,6,6,6,8,8}

    Returns: "Possible"

  102. {5,5,5,5,5}

    Returns: "Possible"

  103. {5,5,5,5,10,10}

    Returns: "Possible"

  104. {5,5,5,6,8,9}

    Returns: "Impossible"

  105. {5,5,6,6,6,10}

    Returns: "Possible"

  106. {5,5,6,6,7,8}

    Returns: "Impossible"

  107. {6,6,6,6,6,6}

    Returns: "Possible"

  108. {3,4,5,6,7}

    Returns: "Impossible"

  109. {3, 4, 5, 6, 7 }

    Returns: "Impossible"

  110. {2, 2 }

    Returns: "Possible"

  111. {9, 9, 9, 9, 9, 9, 9, 9, 9 }

    Returns: "Possible"

  112. {1, 10 }

    Returns: "Impossible"

  113. {1 }

    Returns: "Possible"

  114. {7, 10, 4, 6, 3 }

    Returns: "Possible"

  115. {2, 3, 10 }

    Returns: "Possible"

  116. {1, 1 }

    Returns: "Impossible"

  117. {1, 2, 2, 9 }

    Returns: "Impossible"

  118. {10, 10 }

    Returns: "Possible"

  119. {9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 }

    Returns: "Impossible"

  120. {3, 4, 5 }

    Returns: "Possible"

  121. {4, 4, 3, 3, 3 }

    Returns: "Impossible"

  122. {2, 2, 10 }

    Returns: "Impossible"


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: