CF1371B Magical Calendar
题目描述
一位吃货 Alice 正在为一场吃饭比赛安排练习,她使用的是一份神奇的日历。这份日历很特别,因为一周并不一定包含 $7$ 天!
具体来说,她可以选择任意一个整数 $k$,满足 $1 \leq k \leq r$,并将 $k$ 天设为一周的天数。
Alice 打算在这份日历上涂色连续的 $n$ 天。在这份日历上,日期从一周的左侧单元格依次写到右侧单元格。如果日期到达了一周的最后一天,下一天就会写在下一行的最左侧单元格。
她希望所有被涂色的单元格都是相邻的。也就是说,对于任意两个被涂色的单元格,应该存在一条仅经过被涂色单元格的路径,使得路径上的任意两个相邻单元格都是边相连的。
Alice 正在考虑这些被涂色单元格的形状。如果存在一种方式,仅通过平移(平行于日历的边)可以使两个形状完全重合,则认为这两个形状是相同的。
例如,在下图中,一周有 $4$ 天,Alice 涂色了连续的 $5$ 天。[1] 和 [2] 是不同的形状,但 [1] 和 [3] 是相同的形状。

Alice 想知道,如果她设定一周的天数,并选择连续的 $n$ 天从一周的某一天开始涂色,在所有可能的情况下,会有多少种不同的形状。需要注意的是,她只考虑所有单元格都通过边相连的形状。
输入格式
输入包含多组测试数据。第一行包含一个整数 $t$($1 \leq t \leq 1000$),表示测试用例的数量。接下来的 $t$ 行,每行包含两个整数 $n$ 和 $r$($1 \leq n \leq 10^9, 1 \leq r \leq 10^9$)。
输出格式
对于每个测试用例,输出一个整数,表示不同形状的数量。
请注意,对于某些测试用例,答案可能无法用 $32$ 位整数类型存储,因此你需要在编程语言中使用至少 $64$ 位整数类型。
说明/提示
在第一个测试用例中,Alice 可以将一周设为 $1,2,3$ 或 $4$ 天。
如图所示,有 $6$ 种可能的涂色方式,但只有 $4$ 种不同的形状。因此,答案是 $4$。注意,图中的最后一个例子是无效的,因为所有单元格并不是通过边相连的。

在最后一个测试用例中,需要注意输出格式中提到的溢出问题。
由 ChatGPT 4.1 翻译