fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. import java.util.Scanner;
  9.  
  10. class Ideone
  11. {
  12. public static void main (String[] args) throws java.lang.Exception
  13. {
  14. Scanner sc = new Scanner(System.in);
  15. int t = sc.nextInt();
  16. while(t-- > 0) {
  17. int n = sc.nextInt();
  18. int[] arr = new int[n];
  19. for(int i = 0; i < n; i++) arr[i] = sc.nextInt();
  20. int x = sc.nextInt();
  21. System.out.print("arr: ");printArray(arr);
  22. System.out.print("; "+x+" is at position "+search(arr, x));System.out.println();
  23. }
  24. }
  25. public static void printArray(int[] arr) {
  26. for(int i = 0; i < arr.length; i++) System.out.print(arr[i] + " ");
  27. }
  28. public static int search(int[] arr, int x) {
  29. int start = 0, mid = 0, end = arr.length - 1;
  30. while(start <= end) {
  31. mid = (start+end) / 2;
  32. if(x == arr[mid]) return mid;
  33. if(arr[mid] <= arr[end]) {
  34. if(x > arr[mid] && x <= arr[end]) start = mid + 1;
  35. else end = mid - 1;
  36. }
  37. else {
  38. if(x >= arr[start] && x < arr[mid]) end = mid - 1;
  39. else start = mid + 1;
  40. }
  41. }
  42. return -1;
  43. }
  44. }
Success #stdin #stdout 0.19s 37864KB
stdin
4
5
2 3 4 5 1
2
5
1 2 3 4 5
2
5
3 4 5 1 2
1
5
5 1 2 3 4
3
stdout
arr: 2 3 4 5 1 ; 2 is at position 0
arr: 1 2 3 4 5 ; 2 is at position 1
arr: 3 4 5 1 2 ; 1 is at position 3
arr: 5 1 2 3 4 ; 3 is at position 3