atcoder#ACL1D. Keep Distances

Keep Distances

配点 : 800800

問題文

数直線上に NN 個の点があり,そのうち ii 番目の点は座標 XiX_i にあります. これらの点は座標の昇順に番号がついています. つまり,すべての ii (1iN11 \leq i \leq N-1) について,Xiが成り立ちます.また,整数X_i が成り立ちます. また,整数 K$ が与えられます.

QQ 個のクエリを処理してください.

ii 番目のクエリでは,整数 Li,RiL_i,R_i が与えられます. ここで,点の集合 ssよい集合であるとは,以下の条件をすべて満たすことを意味します. よい集合の定義がクエリごとに変わることに注意してください.

  • ss に含まれる点は,XLi,XLi+1,,XRiX_{L_i},X_{L_i+1},\ldots,X_{R_i} のいずれかである.
  • ss に含まれるどの異なる 22 点についても,その間の距離が KK 以上である.
  • ss のサイズは,上記の条件を満たす集合の中で最大である.

各クエリごとに,すべてのよい集合の和集合のサイズを求めてください.

制約

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1K1091 \leq K \leq 10^9
  • $0 \leq X_1
  • 1Q2×1051 \leq Q \leq 2 \times 10^5
  • 1LiRiN1 \leq L_i \leq R_i \leq N
  • 入力は全て整数である.

入力

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

NN KK

X1X_1 X2X_2 \cdots XNX_N

QQ

L1L_1 R1R_1

L2L_2 R2R_2

\vdots

LQL_Q RQR_Q

出力

各クエリごとに,すべてのよい集合の和集合のサイズを一行に出力せよ.

5 3
1 2 4 7 8
2
1 5
1 2
4
2

11 つめのクエリでは,最大 33 つの点を集合に含めることができます. よい集合は,{1,4,7}\{1,4,7\}{1,4,8}\{1,4,8\}22 つです. よって,すべてのよい集合の和集合のサイズは {1,4,7,8}=4|\{1,4,7,8\}|=4 です.

22 つめのクエリでは,最大 11 つの点を集合に含めることができます. よい集合は,{1}\{1\}{2}\{2\}22 つです. よって,すべてのよい集合の和集合のサイズは {1,2}=2|\{1,2\}|=2 です.

15 220492538
4452279 12864090 23146757 31318558 133073771 141315707 263239555 350278176 401243954 418305779 450172439 560311491 625900495 626194585 891960194
5
6 14
1 8
1 13
7 12
4 12
4
6
11
2
3