Problem:
Range Count Query

数列a_1,a_2,..,a_Nが与えられます。

クエリでは、値がl以上r以下の項の個数を答えてください。

入力

N Q
a_1 a_2...a_N
l_1 r_1
l_2 r_2
:
l_q r_q

出力

ans_1
ans_2
:
ans_q

i行目には、i番目のクエリに対する答え、すなわちl_i \leq a_j \leq r_iなるjの個数を出力せよ。

制約

1 \leq N,Q \leq 10^5

1 \leq a_i \leq 10^9

1 \leq l_i \leq r_i \leq 10^9

入力例

6 3
8 6 9 1 2 1
2 8
1 7
3 5

出力例

3
4
0

Solution in Ruby (judge verdict: Accepted)

n, q = gets.split.map(&:to_i)
a = gets.split.map(&:to_i).sort
q.times do
  l, r = gets.split.map(&:to_i)
  i = (0..n-1).bsearch {|i| l <= a[i] } || n
  j = (0..n-1).bsearch {|j| r <  a[j] } || n
  p j - i
end