Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*
- var sc: Scanner = Scanner(System.`in`)
- fun main() {
- val n: Int = sc.nextInt()
- val arr = IntArray(n)
- for (i in 0 until n) {
- arr[i] = sc.nextInt()
- }
- println(maximumBitwiseAnd(n, arr))
- }
- fun maximumBitwiseAnd(n: Int, arr: IntArray): Int {
- val prefix = IntArray(n)
- val suffix = IntArray(n)
- prefix[0] = (1 shl 30) - 1
- suffix[n - 1] = prefix[0]
- for (i in 1 until n) {
- prefix[i] = prefix[i - 1] and arr[i - 1]
- }
- for (i in n - 2 downTo 0) {
- suffix[i] = suffix[i + 1] and arr[i + 1]
- }
- var res = 0
- for (i in 0 until n) {
- res = Math.max(res, prefix[i] and suffix[i])
- }
- return res
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement