Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Author : Saurav Kalsoor
- // Maths Assignment - KOTLIN
- import java.util.*
- var sc: Scanner = Scanner(System.`in`)
- var list: ArrayList<Long> = ArrayList<Long>()
- fun main() {
- val n: Long = sc.nextLong()
- val result = mathsAssignment(n)
- println(result)
- }
- fun init() {
- val b = BitSet(36)
- for (i in 0..35) {
- b.set(i)
- for (j in i + 1..35) {
- b.set(j)
- val longArray: LongArray = b.toLongArray()
- list.add(longArray[0])
- b.clear(j)
- }
- b.clear(i)
- }
- Collections.sort(list)
- }
- fun lessThan(n: Long): Long {
- var low = 0
- var high: Int = list.size - 1
- var index = 0
- while (low <= high) {
- val mid = low + (high - low) / 2
- if (list.get(mid) <= n) {
- index = mid
- low = mid + 1
- } else {
- high = mid - 1
- }
- }
- return list.get(index)
- }
- fun greaterThan(n: Long): Long {
- var low = 0
- var high: Int = list.size - 1
- var index = high
- while (low <= high) {
- val mid = low + (high - low) / 2
- if (list.get(mid) >= n) {
- index = mid
- high = mid - 1
- } else {
- low = mid + 1
- }
- }
- return list.get(index)
- }
- fun mathsAssignment(n: Long): Long {
- init()
- val a = lessThan(n)
- val b = greaterThan(n)
- return Math.min(Math.abs(n - a), Math.abs(n - b))
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement