この問題では、 を昇順にソートし、forループなどを用いて を満たす を線形探索することにより、各質問に で答えることができます。
しかし、このような愚直なアルゴリズムでは、計算時間が となってしまい、この制約下では実行時間制限に間に合いません。
そこで、各質問に対して高速に答えることでこの問題を AC することができました。
具体的には、昇順にソートした に対して、二分探索を利用すると 、
降順にソートした に対して となるかを判定すると で各質問に答えることができます。
Python, bisectによる実装例