牛牛的全排列
题号:NC205196
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

牛牛在研究关于n维空间的秘密,他发现第n维空间的一切和n的全排列有关,给你一个数字n,你需要找到数字1-n的全排列并按照字典序把他们拼接为一个序列b,然后你需要找到有多少长度为n的子序列的和为n*(n+1)/2(连续的)。如n=2,则序列b【1,2,2,1】就是【1,2】,【2,1】按照字典序拼接而成的b的长度为n的子序列分别为【1,2】,【2,2】,【2,1】和分别为3,4,3,则n为2时的答案就是2(拼接成的序列b的长度为n的子序列和为3(n*(n+1)/2)的共有2个)。请你帮牛牛找出答案。答案对998244353取模。

输入描述:

输入一个数n(1<=n<=1000000)

输出描述:

输出一行一个数代表连续子序列和为n*(n+1)/2的个数,答案对998244353取模。
示例1

输入

复制
2

输出

复制
2
示例2

输入

复制
3

输出

复制
9
示例3

输入

复制
7

输出

复制
26621