AT_kupc2019_k One or All
题目描述
アンジェ喜欢用变量玩耍。
今天她准备了 $3$ 个变量 $x,~y,~z$,打算用它们来玩。这三个变量初始值均为 $0$。
アンジェ打算对这些变量进行 $n$ 次操作,每次可以选择以下任意一种操作:
- 选择一个变量,将其值加 $1$ 或减 $1$。
- 将三个变量的值都加 $1$ 或都减 $1$。
经过 $n$ 次操作后,如果 $x,~y,~z$ 分别除以 $m$ 的余数为 $p,~q,~r$,アンジェ就会感到满意。
アンジェ对有多少种能让她满意的操作序列感兴趣。请帮她计算这样的操作序列的种数,并输出对 $998244353$ 取模的结果。
这里,若存在某个整数 $i\ (1\leq i\leq n)$,使得第 $i$ 次操作后至少有一个变量的值不同,则认为两个操作序列是不同的。
输入格式
输入以如下格式从标准输入读入:
> $n$ $m$ $p$ $q$ $r$
输出格式
输出能让アンジェ满意的操作序列的种数,对 $998244353$ 取模。
说明/提示
### 限制条件
- 所有输入均为整数。
- $1\leq n\leq 10^6$
- $1\leq m\leq 10^6$
- $0\leq p,\ q,\ r < m$
### 样例解释 1
在一次操作中,无法只让某一个变量的值加 $1$,而让剩下的两个变量的值减 $1$。
### 样例解释 2
首先,将三个变量的值都减 $1$。接着只将 $x$ 的值减 $1$,此时 $x$ 的值为 $-2$,$y$ 和 $z$ 的值为 $-1$。它们分别除以 $3$ 的余数为 $1,~2,~2$,因此アンジェ对这个操作序列感到满意。能让アンジェ满意的操作序列有 $2$ 种,包括这个操作序列。
由 ChatGPT 4.1 翻译