D - ぽよぽよ Editorial

Time Limit: 2 sec / Memory Limit: 256 MB

問題文

今、直線上に並んだマスの上に nn 匹のぽよくんが存在しており、ii (1in1 \leq i \leq n) 番目のぽよくんは、pip_i の位置にある杭に長さ lil_i の鎖で繋がれています。
つまり、 ii 番目のぽよくんは pili p_i - l_i から pi+li p_i + l_i の範囲(両端を含む)のマスを自由に動くことができます。

ぽよくんが添字の順に左からそれぞれ異なるマスにいるとき、ぽよくん達の配置は何通り考えられますか。
つまり、次の条件をみたすぽよくんの位置の組み合わせとして考えられる場合の数を求めてください。
ii (1in1 \leq i \leq n) 番目のぽよくんの位置を xix_i として、

  • xix_i は整数
  • pilixipi+lip_i - l_i \leq x_i \leq p_i + l_i
  • どのような jj (1jn1 \leq j \leq n) についても、 i<ji \lt j であるならば、 xi<xjx_i \lt x_j となっている
  • 位置の組み合わせが互いに異なるとは、少なくともどれか一匹のぽよくんについて、位置が異なることだとします。

    答えは非常に大きな値になるので、1,000,000,0071{,}000{,}000{,}007 で割った余りを答えてください。


    入力

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

    nn
    p1p_1 l1l_1
    p2p_2 l2l_2
    ......
    pnp_n lnl_n
    
    • 11 行目には、ぽよくんの総数を表す整数 nn (1n1,0001 \leq n \leq 1,000) が与えられる。
    • 続く nn 行には、ii 番目のぽよくんが繋がれている杭の位置を表す整数 pip_i (0pi1,000,000,0000 \leq p_i \leq 1,000,000,000) と、ii 番目のぽよくんを繋いでいる鎖の長さを表す整数 lil_i (0li1,0000 \leq l_i \leq 1,000) が与えられる。
    • i<ji \lt j であるとき、pi<pjp_i \lt p_j であることが保証されている。

    出力

    ぽよくんの可能な配置の総数を 1,000,000,0071,000,000,007 で割った余りを 11 行で出力せよ。

    最後は改行し、余計な文字、空行を含まないこと。


    入力例1

    Copy
    1. 1
    2. 0 3
    1
    0 3
    

    出力例1

    Copy
    1. 7
    7
    

    ぽよくんの可能な配置は、3-3, 2-2, 1-1, 00, 11, 22, 3377 通りです。


    入力例2

    Copy
    1. 2
    2. 0 3
    3. 1 2
    2
    0 3
    1 2
    

    出力例2

    Copy
    1. 20
    20
    

    ぽよくんの可能な配置の総数は、(11 番目のぽよくんの位置, 22 番目のぽよくんの位置) とすると、
    (3,1)(-3, -1), (3,0)(-3, 0), (3,1)(-3, 1), (3,2)(-3, 2), (3,3)(-3, 3),
    (2,1)(-2, -1), (2,0)(-2, 0), (2,1)(-2, 1), (2,2)(-2, 2), (2,3)(-2, 3),
    (1,0)(-1, 0), (1,1)(-1, 1), (1,2)(-1, 2), (1,3)(-1, 3),
    (0,1)(0, 1), (0,2)(0, 2), (0,3)(0, 3),
    (1,2)(1, 2), (1,3)(1, 3), (2,3)(2, 3)
    2020 通りです。



    2025-04-06 (Sun)
    09:37:58 +00:00