AT_arc012_4 [ARC012D] Don't worry. Be Together
题目描述
有 $N$ 个人站在二维平面上的格点上。
每一回合,每个人都必须向上、下、左、右四个方向中的某一个方向恰好移动 $1$ 单位。
重复进行这个操作,要求在第 $T$ 回合结束时,所有人都能同时到达原点 $(0,0)$。
请输出所有人各自的移动方式的组合数对 $modulo$ 取余的结果。
如果无论如何都无法让所有人同时到达原点,则输出 $0$。
输入按以下格式从标准输入读入。
> $N$ $T$ $modulo$ $x_1$ $y_1$ $x_2$ $y_2$ : : $x_N$ $y_N$
- 第 $1$ 行输入三个整数,分别表示人数 $N(1\leq N\leq 100,000)$,移动回合数 $T(1\leq T\leq 100,000)$,正整数 $modulo$,以空格分隔。
- 第 $2$ 行到第 $N+1$ 行的第 $i+1$ 行,输入第 $i$ 个人的坐标 $x_i,\ y_i$,以空格分隔。
测试数据包含以下三种数据集之一,每个数据集中的 $modulo,\ x_i,\ y_i$ 的取值范围不同。
如果你能对某一数据集中的所有测试数据输出正确答案,即使在其他数据集上输出错误,也会获得部分分数。
- part1($40$ 分):$modulo=1,000,000,007$,$-1,000,000\leq x_i,\ y_i\leq 1,000,000$
- part2($30$ 分):$1\leq modulo\leq 1,000,000,007$,$-100\leq x_i,\ y_i\leq 100$
- part3($30$ 分):$1\leq modulo\leq 1,000,000,007$,$-1,000,000\leq x_i,\ y_i\leq 1,000,000$
请输出恰好在 $T$ 回合后所有人都能到达原点的移动方式组合数对 $modulo$ 取余的结果。
如果无论如何都无法让所有人同时到达原点,则输出 $0$。
输出请在标准输出中给出,末尾需换行。
```
2 2 1000000007
1 1
-1 -1
```
```
4
```
- $x$ 坐标正方向为右,$y$ 坐标正方向为上。
- 在第 $2$ 回合,两个人到达原点的方法有以下 $4$ 种。
- 第 $1$ 个人依次向下、右移动,第 $2$ 个人依次向上、左移动。
- 第 $1$ 个人依次向下、右移动,第 $2$ 个人依次向左、上移动。
- 第 $1$ 个人依次向右、下移动,第 $2$ 个人依次向上、左移动。
- 第 $1$ 个人依次向右、下移动,第 $2$ 个人依次向左、上移动。
```
4 4 1000000007
0 4
4 0
-4 0
0 -4
```
```
1
```
- 每个人只能直线走向原点,没有其他方案,所以答案为 $1$。
```
1 6 10
0 0
```
```
0
```
- $6$ 回合内从原点回到原点的方法有 $400$ 种,$400$ 对 $10$ 取余为 $0$,所以输出 $0$。
```
3 7 12345
2 3
0 1
-2 -1
```
```
11415
```
输入格式
第 $1$ 行输入三个整数 $N$、$T$、$modulo$,以空格分隔。
接下来 $N$ 行,每行输入两个整数 $x_i$、$y_i$,以空格分隔,表示第 $i$ 个人的初始坐标。
输出格式
输出一个整数,表示所有人恰好在 $T$ 回合后同时到达原点的移动方式组合数对 $modulo$ 取余的结果。
如果无论如何都无法让所有人同时到达原点,则输出 $0$。
输出后请换行。
说明/提示
由 ChatGPT 4.1 翻译