atcoder#ARC159E. [ARC159E] Difference Sum Query

[ARC159E] Difference Sum Query

配点 : 900900

問題文

正整数 NNMM 個の正整数の組 (a0,b0),,(aM1,bM1)(a_0,b_0),\ldots,(a_{M-1},b_{M-1}) が与えられます( ai,bia_i,b_i は添え字が 00 から始まることに気を付けてください)。

また、以下のような非負整数列 X=(x1,,xN)X=(x_1,\ldots,x_N) があります。

  • xix_i は以下の手順で定まる。1. l=1,r=N,t=0l=1,r=N,t=0 とする。 2. $m=\left \lfloor \dfrac{a_{t \bmod M} \times l + b_{t \bmod M} \times r}{a_{t \bmod M} +b_{t \bmod M}} \right \rfloor$ とする( x\lfloor x \rfloorxx を超えない最大の整数)。m=im=i ならば xi=tx_i=t として手順を終了する。 3. li<ml \leq i \lt m ならば r=m1r=m-1、そうでなければ l=m+1l=m+1 とする。 tt の値を 11 増やし、2へ戻る。
  • l=1,r=N,t=0l=1,r=N,t=0 とする。
  • $m=\left \lfloor \dfrac{a_{t \bmod M} \times l + b_{t \bmod M} \times r}{a_{t \bmod M} +b_{t \bmod M}} \right \rfloor$ とする( x\lfloor x \rfloorxx を超えない最大の整数)。m=im=i ならば xi=tx_i=t として手順を終了する。
  • li<ml \leq i \lt m ならば r=m1r=m-1、そうでなければ l=m+1l=m+1 とする。 tt の値を 11 増やし、2へ戻る。

i=1,2,,Qi=1,2,\ldots,Q に対し、j=cidi1xjxj+1\sum_{j=c_i}^{d_i-1} |x_j - x_{j+1}| の値を求めてください。 なお、本問の制約の下、答えが 101810^{18} 以下であることが示せます。

制約

  • 2N10152 \leq N \leq 10^{15}
  • 1M1001 \leq M \leq 100
  • 1ai,bi10001 \leq a_i,b_i \leq 1000
  • $\max \left (\dfrac{a_i}{b_i},\dfrac{b_i}{a_i}\right ) \leq 2$
  • 1Q1041 \leq Q \leq 10^4
  • 1ci<diN1 \leq c_i \lt d_i \leq N
  • 入力はすべて整数

入力

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

NN MM

a0a_0 b0b_0

\vdots

aM1a_{M-1} bM1b_{M-1}

QQ

c1c_1 d1d_1

\vdots

cQc_Q dQd_Q

出力

QQ 行出力せよ。xx 行目には、i=xi=x に対する問題の答えを出力せよ。

5 1
1 1
3
1 2
2 4
3 5
1
3
2

X=(1,2,0,1,2)X=(1,2,0,1,2) です。例えば、x1x_1 は以下の手順で定まります。

  • l=1,r=5(=N),t=0l=1,r=5(=N),t=0 とする。
  • $m=3(=\left \lfloor \dfrac{1 \times 1 + 1 \times 5}{1+1} \right \rfloor)$ とする。
  • l1<ml \leq 1 \lt m なので r=2(=m1)r=2(=m-1) とする。tt の値を 11 増やして 11 とする。
  • $m=1(= \left \lfloor \dfrac{1 \times 1 + 1 \times 2}{1+1} \right \rfloor )$ とする。m=1m=1 なので x1=1(=t)x_1=1(=t) として手順を終了する。

(ci,di)(c_i,d_i) への答えは、例えば (c1,d1)(c_1,d_1) の場合、$\sum_{j=c_i}^{d_i-1} |x_j - x_{j+1}| = |x_1-x_2| = 1$ となります。

1000000000000000 2
15 9
9 15
3
100 10000
5000 385723875
150 17095708
19792
771437738
34191100