数学题真难啊
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

你告别了 Crazycth 继续上路,又遇到了不喜欢数学的 DavidXu_JJ 讲故事。

DavidXu_JJ 有一天和他的队友在训练时,遇到这么一道题:

有一个长度为 n 的数组 ,数组中的每个元素可以是 中的任意一个整数。如果它所有元素之和 3 的倍数,那么就称它为有趣的数组,你需要求出所有长度为 n 的数组中有多少种数组是有趣的。

DavidXu_JJ 和他的队友决定构造它的 生成函数 并使用 快速傅立叶变换 来计算这个值,但在复盘时发现这题有极其简单的方法能够算出答案,导致他们当场脑淤血晕倒过去。

DavidXu_JJ 从病床上想到了一个更加困难的问题,但他因为心理阴影导致无法独立解决这个问题,请问你能否帮助他解决?题目描述如下:

有一个长度为 n 的数组 ,数组中的每个元素可以是 中的任意一个整数。现将其下标为奇数的元素和偶数的元素分别取出,组成两个数组 。例如:数组 被分为数组 和数组

如果 3 的倍数且 数组是 9 的倍数,那么就称 a 为"不有趣的数组'',请求出所有长度为 n 的不有趣数组的个数。由于答案可能很大,你只需要输出答案对 998244353 取模后的结果。

输入描述:

第一行包含一个整数 n ,表示数组 a 的长度。

输出描述:

在一行输出一个整数,表示所有长度为 n 的不有趣数组的个数对 998244353取模后的结果。
示例1

输入

复制
2

输出

复制
8
示例2

输入

复制
5

输出

复制
4008
示例3

输入

复制
114514

输出

复制
549375874