Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Author: Saurav Kalsoor
- // Mochas Query - KOTLIN
- import java.util.*
- var sc: Scanner = Scanner(System.`in`)
- fun main() {
- val n: Int = sc.nextInt()
- val q: Int = sc.nextInt()
- val height = IntArray(n)
- val query = IntArray(q)
- for (i in 0 until n) {
- height[i] = sc.nextInt()
- }
- for (i in 0 until q) {
- query[i] = sc.nextInt()
- }
- val result = mochasQuery(height, n, query, q)
- for (i in 0 until q) {
- print(result[i].toString() + " ")
- }
- }
- fun mochasQuery(height: IntArray, n: Int, query: IntArray, q: Int): IntArray {
- val result = IntArray(q)
- Arrays.sort(height)
- for (i in 0 until q) {
- result[i] = binarySearchX(height, n, query[i])
- }
- return result
- }
- fun binarySearchX(height: IntArray, n: Int, x: Int): Int {
- var lo = 0
- var hi = n - 1
- var index = n
- while (lo <= hi) {
- val mid = lo + (hi - lo) / 2
- if (height[mid] >= x) {
- index = mid
- hi = mid - 1
- } else {
- lo = mid + 1
- }
- }
- return n - index
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement