#dwacon6thprelimsb. [dwacon6th_prelims_b]Fusing Slimes

[dwacon6th_prelims_b]Fusing Slimes

问题描述

在数轴上有 NN 个史莱姆站立着。从左边开始,第 ii 个史莱姆在位置 xix_i 处。

保证 1leqx1<x2<ldots<xNleq1091 \\leq x_1 < x_2 < \\ldots < x_N \\leq 10^{9}

Niwango 将执行 N1N-1 次操作。第 ii 次操作包括以下步骤:

  • 11NiN-i(包括)以等概率选择一个整数 kk
  • 将第 kk 个史莱姆从左侧移动到右侧相邻史莱姆的位置。
  • 将相同位置的两个史莱姆合并成一个史莱姆。

找出史莱姆行进的总距离乘以 (N1)!(N-1)!(我们可以证明这个值是整数),对 (109+7)(10^9+7) 取模。如果通过融合产生了新的史莱姆,并且该史莱姆移动了位置,则将其视为一个史莱姆。

约束条件

  • 2leqNleq1052 \\leq N \\leq 10^{5}
  • 1leqx1<x2<ldots<xNleq1091 \\leq x_1 < x_2 < \\ldots < x_N \\leq 10^{9}
  • xix_i 是整数。

输入

输入从标准输入读取,具有以下格式。

NN x1x_1 x2x_2 ldots\\ldots xNx_N

输出

输出答案。

示例1

3
1 2 3

输出示例1

5
  • 概率为 frac12\\frac{1}{2} 时,在第一次操作中选择最左边的史莱姆,则总距离为 22
  • 概率为 frac12\\frac{1}{2} 时,在第一次操作中选择中间的史莱姆,则总距离为 33
  • 答案是预期总距离 2.52.5 乘以 2!2!,也就是 55

示例2

12
161735902 211047202 430302156 450968417 628894325 707723857 731963982 822804784 880895728 923078537 971407775 982631932

输出示例2

750927044
  • 计算期望值乘以 (N1)!(N-1)!,对 (109+7)(10^9+7) 取模。