Advertisement
saurav_kalsoor

Maximum Bitwise AND - KOTLIN

Nov 23rd, 2021
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 0.71 KB | None | 0 0
  1. import java.util.*
  2.  
  3. var sc: Scanner = Scanner(System.`in`)
  4.  
  5. fun main() {
  6.     val n: Int = sc.nextInt()
  7.     val arr = IntArray(n)
  8.     for (i in 0 until n) {
  9.         arr[i] = sc.nextInt()
  10.     }
  11.     println(maximumBitwiseAnd(n, arr))
  12. }
  13.  
  14. fun maximumBitwiseAnd(n: Int, arr: IntArray): Int {
  15.     val prefix = IntArray(n)
  16.     val suffix = IntArray(n)
  17.  
  18.     prefix[0] = (1 shl 30) - 1
  19.     suffix[n - 1] = prefix[0]
  20.  
  21.     for (i in 1 until n) {
  22.         prefix[i] = prefix[i - 1] and arr[i - 1]
  23.     }
  24.  
  25.     for (i in n - 2 downTo 0) {
  26.         suffix[i] = suffix[i + 1] and arr[i + 1]
  27.     }
  28.  
  29.     var res = 0
  30.     for (i in 0 until n) {
  31.         res = Math.max(res, prefix[i] and suffix[i])
  32.     }
  33.     return res
  34. }
  35.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement