atcoder#EXAWIZARDS2019D. Modulo Operations

Modulo Operations

题目描述

すぬけ君は黒板と N N 個の整数からなる集合 S S を持っています。 S S i i 番目の要素は Si S_i です。

すぬけ君は黒板に整数 X X を書いたのち、以下の操作を N N 回行います。

  • S S から要素を 1 1 つ選んで取り除く。
  • その後、現在黒板に書かれた数を x x S S から取り除かれた整数を y y として、黒板に書かれた数を x mod y x\ \bmod\ {y} に書き換える。

S S から要素を取り除く順序は N! N! 通りありえます。 それぞれの場合について、N N 回の操作後に黒板に書かれている数を求め、その総和を 109+7 10^{9}+7 で割ったあまりを求めてください。

输入格式

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

N N X X S1 S_1 S2 S_2 \ldots SN S_{N}

输出格式

答えを出力せよ。

题目大意

Snuke有一块黑板和一组由N N 整数组成的S S S S 中的第 ii 个元素是Si S_i

他在黑板上写了一个整数X X ,然后执行了N N 次以下操作:

  • S S 中选择一个元素并将其删除。
  • x x 是现在写在黑板上的数字,y y 是从S S 中删除的整数。用xmody x \bmod{y} 替换黑板上的数字。

N!N! 个可能的顺序,其中元素从 SS 中删除。对于每个元素,找到在 NN 操作之后要写在黑板上的数字,然后计算所有这些 N!N! 的总和数字取模 109+710^ {9} + 7

2 19
3 7
3
5 82
22 11 6 5 13
288
10 100000
50000 50001 50002 50003 50004 50005 50006 50007 50008 50009
279669259

提示

制約

  • 入力は全て整数である。
  • 1  N  200 1\ \leq\ N\ \leq\ 200
  • 1  Si, X  105 1\ \leq\ S_i,\ X\ \leq\ 10^{5}
  • Si S_i たちは相異なる。

Sample Explanation 1

- S S から数を取り除く順序は 2 2 通りあります。 - 3,7 3,7 の順で取り除いたとき、黒板に書かれた数は 19  1  1 19\ \rightarrow\ 1\ \rightarrow\ 1 と変化します。 - 7,3 7,3 の順で取り除いたとき、黒板に書かれた数は 19  5  2 19\ \rightarrow\ 5\ \rightarrow\ 2 と変化します。 - これらの総和である 3 3 を出力してください。

Sample Explanation 3

- 総和を 109+7 10^{9}+7 で割ったあまりを求めるのを忘れずに。