#hhkb2020d. [hhkb2020_d]Squares

[hhkb2020_d]Squares

题目描述

给定整数 NNAABB

我们将在坐标平面上放置一个边长为 NN 的白色正方形,其顶点位于 (0,0)(0, 0)(N,0)(N, 0)(0,N)(0, N)(N,N)(N, N) 处。

然后,我们将放置一个边长为 AA 的蓝色正方形和一个边长为 BB 的红色正方形,使得这些正方形都在白色正方形内部(包括边界)。

这里,每个正方形的边必须平行于 xx 轴或 yy 轴。

此外,红色和蓝色正方形的每个顶点必须是整数点。

找到放置红色和蓝色正方形的方法数,使它们不严格重叠(它们可以共享边界),结果对 1,000,000,0071,000,000,007 取模。

在每个输入文件中解决 TT 个测试用例。

约束条件

  • 1T1051 \leq T \leq 10^5
  • 1N1091 \leq N \leq 10^9
  • 1AN1 \leq A \leq N
  • 1BN1 \leq B \leq N
  • 输入中的所有值都是整数。

输入

输入以以下格式从标准输入中给出。输入的第一行如下所示:

TT

然后是 TT 个测试用例,每个测试用例的格式如下:

NN AA BB

输出

对于每个测试用例,打印放置红色和蓝色正方形的方法数,使它们不严格重叠,结果对 1,000,000,0071,000,000,007 取模。每个测试用例占一行。

示例 1

3
3 1 2
4 2 2
331895368 154715807 13941326

示例输出 1

20
32
409369707

例如,在第一个测试用例中,有 99 种放置蓝色正方形的方法和 44 种放置红色正方形的方法,忽略重叠。

无论我们在哪里放置红色正方形,都有 44 种方法可以放置蓝色正方形,使其严格与红色正方形重叠。

因此,放置红色和蓝色正方形的方法数为 9×44×4=209 \times 4 - 4 \times 4 = 20,使它们不严格重叠。

注意,这些正方形可以共享边界。例如,当蓝色正方形和红色正方形的左下顶点分别为 (0,0)(0, 0)(0,1)(0, 1) 时,这些正方形不会严格重叠。