AT_abc313_g [ABC313G] Redistribution of Piles
Background
管理备注:atcoder library 提供计算 $\sum\limits_i\left\lfloor\dfrac{ai+b}{c}\right\rfloor$ 的函数,使得本题使用和不使用 atcoder library 的难度相差过大,故本题评灰。
Description
[problemUrl]: https://atcoder.jp/contests/abc313/tasks/abc313_g
$ 1 $ から $ N $ までの番号がついた $ N $ 枚の皿があります。皿 $ i $ には $ a_i $ 個の石が載っています。また、空の袋があります。
あなたは以下の 2 種類の操作を好きな順番で 0 回以上何度でも行うことができます。
- 石が $ 1 $ 個以上載っている皿全てから石を $ 1 $ 個ずつ取る。取った石は袋に移動する。
- 袋から石を $ N $ 個取り出し、全ての皿に $ 1 $ 個ずつ石を載せる。ただし、この操作は袋に石が $ N $ 個以上ある場合にのみ行うことができる。
操作後に皿 $ i $ に載っている石の個数を $ b_i $ とします。$ b_i $ を並べてできる長さ $ N $ の整数列 $ (b_1,\ b_2,\ \dots,\ b_N) $ としてあり得るものの個数を $ 998244353 $ で割った余りを求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ a_1 $ $ a_2 $ $ \dots $ $ a_N $
Output Format
$ (b_1,\ b_2,\ \dots,\ b_N) $ としてあり得るものの個数を $ 998244353 $ で割った余りを出力せよ。
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 2\ \times\ 10^5 $
- $ 0\ \leq\ a_i\ \leq\ 10^9 $
### Sample Explanation 1
例えば以下の手順で操作を行うと $ b $ は $ (2,\ 1,\ 2) $ になります。 - 1 番目の操作を行う。$ b $ は $ (2,\ 0,\ 2) $ になる。 - 1 番目の操作を行う。$ b $ は $ (1,\ 0,\ 1) $ になる。 - 2 番目の操作を行う。$ b $ は $ (2,\ 1,\ 2) $ になる。 操作後の $ b $ としてあり得る列は次の $ 7 $ 種類です。 - $ (0,\ 0,\ 0) $ - $ (1,\ 0,\ 1) $ - $ (1,\ 1,\ 1) $ - $ (2,\ 0,\ 2) $ - $ (2,\ 1,\ 2) $ - $ (2,\ 2,\ 2) $ - $ (3,\ 1,\ 3) $
### Sample Explanation 2
操作後の $ b $ としてあり得るものは $ (0) $ の $ 1 $ 種類です。