1, 2, … , Nの順列 (p(1), p(2), … , p(n)) が与えられる. (l_i, r_i) からなるクエリが Q 個与えられるので,各クエリに対して以下の擬似コードによる処理結果を出力せよ.
- ret := 0, (x(1), x(2), … , x(N)) := (1, 2, … , N) とおく.
- 各i ∈1, 2, … , N について y(i):=p(x(i)) とする.
- 各i ∈1, 2, … , N について x(i) = y(i)とする.
- ret := ret+x(l_i)+x(l_i+1)+… +x(r_i)
- もし (x(l_i), x(l_i+1), … , x(r_i))=(l_i, l_i+1, … , r_i) なら (ret mod 109+7) を出力して終了する.そうでないなら 処理2に戻る.