H - Doki Doki Programming Clubs! Editorial

Time Limit: 2 sec / Memory Limit: 512 MB

配点 : 200

問題文

W大学ではサークル活動が盛んで、 N 個の競技プログラミングサークルがあります。 サークル i (0iN1) の部員の人数は Ki であり、その j (0jKi1) 番目の部員のレートは Ai,j です。

毎日、どのサークルがパソコン室を使うかで言い争いになり、サークル同士は競技プログラミング対決で決着をつけます。対決はそれぞれのサークルの部員が順番に1対1の勝負を行いますが、人数が少ない方のサークルの部員は多い方の人数に合わせて、対決が終わるまでローテーションします。

サークル X とサークル Y の対決の「白熱度」は対決する部員のレートの積の総和で表されます。式で表すと、以下のようになります。

  • 数列AX,AYについて、0jmax(KX,KY)1における(AX, jmodKX×AY, jmodKY)の値

今、対決が Q 回行われ、i (0iQ1) 番目の対決はサークル Xi とサークル Yi の対決でした。それぞれの対決について、「白熱度」を求めてください。ただし、答えは非常に大きくなることがあるので、109+7で割ったあまりを答えること。

制約

  • 2N200000
  • 1Ki
  • Ki200000
  • 1Ai,j109
  • 1Q200000
  • 0Xi,YiN1
  • XiYi
  • 入力される値はすべて整数である。

入力

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

N
K0 A0,0 A0,1  A0,K01
K1 A1,0 A1,1  A1,K11

KN1 AN1,0 AN1,1  AN1,KN11
Q
X0 Y0
X1 Y1

XQ1 YQ1

出力

それぞれのクエリに対して答えを109+7で割ったあまりを出力してください。


入力例 1Copy

Copy
3
1 7
2 5 6
3 3 3 4
3
0 1
0 2
1 2

出力例 1Copy

Copy
77
70
53

例えば、二つ目のクエリに対しては、数列A0,A2に注目しK0=1,K2=3より答えはA0,0×A2,0+A0,0×A2,1+A0,0×A2,2=70となります。

三つ目のクエリに対しては、数列A1,A2に注目しK1=2,K2=3より答えはA1,0×A2,0+A1,1×A2,1+A1,0×A2,2=53となります。


入力例 2Copy

Copy
2
3 1000000000 999999999 999999998
10 1 2 3 4 5 6 7 8 9 10
1
0 1

出力例 2Copy

Copy
999999571

109+7で割ったあまりを出力してください。



2025-04-05 (Sat)
03:04:05 +00:00