#aBC326E. [ABC326E] Revenge of "The Salary of AtCoder Inc."

[ABC326E] Revenge of "The Salary of AtCoder Inc."

AT_abc326_e [ABC326E] Revenge of "The Salary of AtCoder Inc."

题目描述

青木是 AtCoder 公司的员工,他本月的工资通过一个整数 NN 和一个长度为 NN 的数列 AA 按如下方式决定。

首先,青木会得到一个有 NN 个面的骰子(每个面上分别标有 11NN 的整数,掷出每个面的概率相等),以及一个变量 x=0x=0

然后,重复以下步骤直到结束:

  • 掷一次骰子,掷出的点数记为 yy
    • 如果 x<yx < y,则发放 AyA_y 日元,并将 xx 更新为 yy
    • 否则,流程结束。

青木本月的工资为通过上述流程累计发放的金额之和。

请计算青木本月工资的期望值,并对 998244353998244353 取模后输出。

期望值 mod998244353\bmod{998244353} 的定义
本题中要求的期望值一定是有理数。在本题的约束下,设期望值为最简分数 yx\frac{y}{x},保证 xx 不会被 998244353998244353 整除。此时,存在唯一的 0z<9982443530 \leq z < 998244353 满足 yxz(mod998244353)y \equiv xz \pmod{998244353},请输出 zz

输入格式

输入通过标准输入给出,格式如下:

NN A1A_1 A2A_2 \dots ANA_N

输出格式

请输出答案。

输入输出样例 #1

输入 #1

3
3 2 6

输出 #1

776412280

输入输出样例 #2

输入 #2

1
998244352

输出 #2

998244352

输入输出样例 #3

输入 #3

9
3 14 159 2653 58979 323846 2643383 27950288 419716939

输出 #3

545252774

说明/提示

数据范围

  • 输入均为整数。
  • 1N3×1051 \leq N \leq 3 \times 10^5
  • 0Ai<9982443530 \leq A_i < 998244353

样例解释 1

一种流程如下:

  • 初始时,x=0x=0
  • 掷一次骰子,结果为 11。由于 0<10 < 1,发放 A1=3A_1=3 日元,xx 更新为 11
  • 再掷一次骰子,结果为 33。由于 1<31 < 3,发放 A3=6A_3=6 日元,xx 更新为 33
  • 再掷一次骰子,结果为 11。由于 313 \geq 1,流程结束。

在这个例子中,青木本月的工资为 99 日元。
本月工资的期望值可以计算为 499\frac{49}{9} 日元,模 998244353998244353 意义下为 776412280776412280

由 ChatGPT 4.1 翻译