fork download
  1.  
  2. import java.io.BufferedReader;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;
  5. import java.io.OutputStream;
  6. import java.io.PrintWriter;
  7. import java.util.StringTokenizer;
  8.  
  9.  
  10. public class Main {
  11.  
  12. static class FastReader {
  13.  
  14. public FastReader()
  15. {
  16. br = new BufferedReader(new
  17. }
  18.  
  19. String next()
  20. {
  21. while (st == null || !st.hasMoreElements())
  22. {
  23. try
  24. {
  25. st = new StringTokenizer(br.readLine());
  26. }
  27. catch (IOException e)
  28. {
  29. e.printStackTrace();
  30. }
  31. }
  32. return st.nextToken();
  33. }
  34.  
  35. int nextInt()
  36. {
  37. return Integer.parseInt(next());
  38. }
  39.  
  40. long nextLong()
  41. {
  42. return Long.parseLong(next());
  43. }
  44.  
  45. double nextDouble()
  46. {
  47. return Double.parseDouble(next());
  48. }
  49.  
  50. String nextLine()
  51. {
  52. String str = "";
  53. try
  54. {
  55. str = br.readLine();
  56. }
  57. catch (IOException e)
  58. {
  59. e.printStackTrace();
  60. }
  61. return str;
  62. }
  63. }
  64.  
  65. static int l,r,mid,i1,i2,now;
  66.  
  67. static int get(int a, int b, int[] arr, int n) {
  68. if(arr[n-1]<a || arr[0]>b) return 0;
  69. l = 0;
  70. r = n-1;
  71. while(l<=r) {
  72. mid = (l+r)/2;
  73. if(arr[mid]==a) {
  74. now=mid;
  75. break;
  76. }
  77. if(arr[mid]<a) l = mid+1;
  78. else {
  79. r = mid-1;
  80. now = mid;
  81. }
  82. }
  83. i1 = now;
  84. l=0;
  85. r=n-1;
  86. while(l<=r) {
  87. mid = (l+r)/2;
  88. if(arr[mid]==b) {
  89. now = mid;
  90. break;
  91. }
  92. if(arr[mid]<b) {
  93. now = mid;
  94. l = mid + 1;
  95. } else {
  96. r = mid - 1;
  97. }
  98. }
  99. i2=now;
  100. return i2-i1+1;
  101. }
  102.  
  103. public static void main(String[] args) {
  104.  
  105. FastReader sc = new FastReader();
  106. OutputStream outputstream = System.out;
  107. PrintWriter out = new PrintWriter(outputstream);
  108.  
  109. int t = sc.nextInt();
  110. int n,q;
  111. int a,b;
  112. int[] arr = new int[100000];
  113. long ans;
  114. int cas = 0;
  115. while(t--!=0) {
  116. out.println("Case " + ++cas + ":");
  117. n = sc.nextInt();
  118. q = sc.nextInt();
  119. for(int i = 0; i < n; i++) arr[i] = sc.nextInt();
  120. while(q--!=0) {
  121. a = sc.nextInt();
  122. b = sc.nextInt();
  123. ans = get(a,b,arr,n);
  124. out.println(ans);
  125. }
  126. }
  127. out.close();
  128.  
  129. }
  130.  
  131. }
Success #stdin #stdout 0.05s 2184192KB
stdin
5
5 2
1 2 3 4 5
0 0
0 1
5 1
6962 6964 8486 8924 9317
2312 2956
5 2
1 100 1000 9999 10000
1 99
9998 10001
2 5
1 100000000
1 2
2 3
3 4
4 5
5 6
5 1
10 20 30 40 50
15 45
stdout
Case 1:
0
1
Case 2:
0
Case 3:
1
2
Case 4:
1
0
0
0
0
Case 5:
3