atcoder#ARC082D. [ARC082F] Sandglass

[ARC082F] Sandglass

配点 : 700700

問題文

パーツAとパーツBからなる砂時計があります。これらのパーツにはいくらかの砂が入っています。 砂時計を置くときはパーツAとパーツBのどちらかが上になり、そうでないほうが下になります。

11 秒間に 11 [g] の砂が上にあるパーツから下にあるパーツに落ちます。 ただし、上のパーツにもう砂が残っていない場合は砂は落ちません。

はじめ時刻 00 にパーツAが上にあり、aa [g] の砂がパーツAに入っていて、XaX-a [g] の砂がパーツBに入っています(すなわち、合計 XX [g] の砂が入っています)。

時刻 r1,r2,..,rKr_1,r_2, .., r_K に砂時計をひっくり返します。この操作は瞬間的に行われ、時間はかからないものとします。なお、時刻 tt とは時刻 00tt 秒後を指します。

クエリが QQ 個与えられます。 各クエリは (ti,ai)(t_i,a_i) の形をしています。 各クエリに対し、a=aia=a_i だとして、時刻 tit_i にパーツAに入っている砂の量が何gか答えてください。

制約

  • 1X1091 \leq X \leq 10^9
  • 1K1051 \leq K \leq 10^5
  • $1 \leq r_1
  • 1Q1051 \leq Q \leq 10^5
  • $0 \leq t_1
  • 0aiX(1iQ)0 \leq a_i \leq X (1 \leq i \leq Q)
  • 入力値はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

XX

KK

r1r_1 r2r_2 .. rKr_K

QQ

t1t_1 a1a_1

t2t_2 a2a_2

::

tQt_Q aQa_Q

出力

各クエリの答えを 11 行ごとに出力せよ。

180
3
60 120 180
3
30 90
61 1
180 180
60
1
120

11 つめのクエリでは、はじめパーツAに 9090 [g] 入っていた砂が 3030 [g] 減り、6060 [g] になります。 22 つめのクエリでは、はじめパーツAに入っていた 11 [g] の砂がパーツBに落ちた後、5959 秒間変化は起こりません。ここで砂時計をひっくり返し、その 11 秒後にパーツAに入っている砂の量を聞かれているため、答えは 11 [g] になります。

100
1
100000
4
0 100
90 100
100 100
101 100
100
10
0
0

どのクエリでもはじめにパーツAに入っている砂は 100100 [g] で、砂時計をひっくり返す前の時間での値を聞いています。

100
5
48 141 231 314 425
7
0 19
50 98
143 30
231 55
342 0
365 100
600 10
19
52
91
10
58
42
100