CF1931G One-Dimensional Puzzle

题目描述

你有一个一维拼图,所有的拼图块需要连接成一行,每个拼图块都要与相邻的拼图块连接。所有拼图块都是纯白色的,只有形状不同才能区分。 每个拼图块的上下边都是直的,左右两边各有一个连接口,每个连接口可以是凸起或凹陷。你不能旋转拼图块。 你可以看到,拼图块一共有 $4$ 种类型。只有当左边拼图块的右连接口与右边拼图块的左连接口相反时,这两个拼图块才能连接。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1931G/ab3dee044a8e18206fe7c695b7a089bda5931d43.png) 所有可能的拼图块类型如上图所示。拼图中分别有 $c_1, c_2, c_3, c_4$ 个每种类型的拼图块。只有当你能把所有拼图块连接成一条长链时,拼图才算完成。你想知道有多少种不同的拼图完成方式。

输入格式

第一行包含一个整数 $t$($1 \le t \le 2 \cdot 10^5$),表示输入的测试用例数。接下来是每个测试用例的描述。 每个测试用例包含 $4$ 个整数 $c_i$($0 \le c_i \le 10^6$),分别表示每种类型拼图块的数量。 保证所有测试用例中 $c_i$ 的总和不超过 $4 \cdot 10^6$。

输出格式

对于每个测试用例,输出一个整数,表示完成拼图的不同方式数。 如果存在 $i$,使得两种方式在第 $i$ 个位置上的拼图块类型不同,则认为这两种方式是不同的。 由于答案可能很大,请输出对 $998244353$ 取模后的结果。 如果无法完成拼图,请输出 $0$。

说明/提示

由 ChatGPT 4.1 翻译