問題一覧 > 通常問題

No.3026 Range LCM (Online Version)

レベル : / 実行時間制限 : 1ケース 3.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 9
作問者 : 👑 potato167 / テスター : noya2
1 ProblemId : 11938 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2025-02-14 14:44:02

問題文

長さ NN の非負数列 A=(A1,A2,,AN)A = (A_{1}, A_{2}, \dots , A_{N}) が与えられます。

QQ 個のクエリを処理してください。ii 番目のクエリでは、11 以上 NN 以下の整数 Li,RiL_{i}, R_{i} が与えられるので、LCM(ALi,ALi+1,,ARi)\mathrm{LCM}(A_{L_{i}}, A_{L_{i} + 1}, \dots, A_{R_{i}})998244353998244353 で割ったあまりを答えてください。

ただし、クエリはオンラインで処理してください。

このため、Li,RiL_{i}, R_{i} の代わりに 00 以上 998244353998244353 未満の整数 ai,bia_{i}, b_{i} が与えられるので、以下の手順で Li,RiL_{i}, R_{i} を復元してください。

  • ansians_{i}ii 番目のクエリの答えとします。ただし、ans0=1ans_{0} = 1 とします。
  • xix_{i}aia_{i}ansi1ans_{i - 1} の積を 998244353998244353 で割ったあまりとします。
  • yiy_{i}xix_{i}NN で割ったあまりに 11 を足した値とします。
  • ziz_{i}bib_{i}ansi1ans_{i - 1} の積を 998244353998244353 で割ったあまりとします。
  • wiw_{i}ziz_{i}NN で割ったあまりに 11 を足した値とします。
  • このとき、Li=min(yi,wi)L_{i} = \min(y_{i}, w_{i})Ri=max(yi,wi)R_{i} = \max(y_{i}, w_{i}) が成り立ちます。

制約

  • 1N2×1051\leq N\leq 2\times 10^{5}
  • 1Ai2×1051\leq A_{i} \leq 2\times 10^{5}
  • 1Q2×1051\leq Q\leq 2\times 10^{5}
  • 0ai<9982443530\leq a_{i} < 998244353
  • 0bi<9982443530\leq b_{i} < 998244353
  • 入力は全て整数

入力

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

NN
A1A_{1} A2A_{2} \cdots ANA_{N}
QQ
a1a_{1} b1b_{1}
a2a_{2} b2b_{2}
\vdots
aQa_{Q} bQb_{Q}

出力

QQ 行出力してください。ii 行目には ii 番目のクエリの答えを出力してください。

サンプル

サンプル1
入力
10
6 3 4 167 2001 924 167167 167924 154308 214
7
304921541 763013770
364152278 493873646
913728501 147488912
853264047 856697087
387754750 361771040
445185209 445241330
241421656 198733890
出力
6
12
12
2001
750239690
562468351
289452377

ai,bia_{i}, b_{i} ではなく Li,RiL_{i}, R_{i} が入力で与えられるときは以下のようになります。

10
6 3 4 167 2001 924 167167 167924 154308 214
7
1 2
1 3
2 3
5 5
6 10
5 8
1 10

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。