Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Author : Saurav Kalsoor
- import java.util.*;
- public class Test {
- static Scanner sc = new Scanner(System.in);
- public static void main(String[] args) {
- int n = sc.nextInt();
- int q = sc.nextInt();
- int height[] = new int[n];
- int query[] = new int[q];
- for (int i = 0; i < n; i++) {
- height[i] = sc.nextInt();
- }
- for (int i = 0; i < q; i++) {
- query[i] = sc.nextInt();
- }
- int[] result = mochasQuery(height, n, query, q);
- for(int i=0; i < q; i++){
- System.out.print(result[i] + " ");
- }
- }
- public static int[] mochasQuery(int[] height, int n, int[] query, int q) {
- int result[] = new int[q];
- Arrays.sort(height);
- for(int i=0; i < q; i++){
- result[i] = binarySearchX(height, n, query[i]);
- }
- return result;
- }
- public static int binarySearchX(int[] height, int n, int x){
- int lo = 0, hi = n-1, index = n;
- while(lo <= hi){
- int mid = lo + (hi - lo) / 2;
- if(height[mid] >= x){
- index = mid;
- hi = mid-1;
- }else{
- lo = mid+1;
- }
- }
- int res = n - index;
- return res;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement