P15527 [ROIR 2015 Day 2] circle 环形线路

题目描述

在安德烈和博里斯生活的城市,地铁由一条唯一的环形线路组成,沿着这条线路,$n$ 个车站按相等距离排列,编号从 $1$ 到 $n$。两个相邻车站之间的路段称为区间。 环形线路的列车可以顺时针或逆时针行驶,因此,为了从一个车站到另一个车站,乘客可以选择经过较少区间的方向。为了从一个车站到另一个车站所需的最少区间数,称为两车站之间的距离。 朋友们注意到,满足以下条件:如果指定一个车站 $X$,并列出两个数字:$D_a$ —— 从安德烈住的车站到车站 $X$ 的距离,$D_b$ —— 从博里斯住的车站到车站 $X$ 的距离,那么得到的数字对 $[D_a, D_b]$ 将唯一地确定车站 $X$。 例如,如果 $n = 4$,安德烈住在车站 $1$,博里斯住在车站 $2$,那么车站 $1$ 由 $[0, 1]$ 来表示,车站 $2$ 由 $[1, 0]$ 表示,车站 $3$ 由 $[2, 1]$ 表示,车站 $4$ 由 $[1, 2]$ 表示。 他们的同学谢尔盖住在邻近的城市,且不知道安德烈和博里斯住在哪些车站。为了找到朋友们,他对有多少对车站 $A, B$ 感兴趣,如果安德烈住在车站 $A$,博里斯住在车站 $B$,能满足上述条件。 **任务**:编写一个程序,根据环形线路上的车站数 $n$,确定符合条件的车站对的数量。

输入格式

输入文件的第一行包含一个整数 $n$ ($3 \leq n \leq 40,000$)。

输出格式

输出文件应该包含一个整数 —— 求得的车站对的数量。

说明/提示

### 示例说明 在第一个例子中,符合条件的车站对如下: * 安德烈住在车站 $1$,博里斯住在车站 $2$; * 安德烈住在车站 $1$,博里斯住在车站 $4$; * 安德烈住在车站 $2$,博里斯住在车站 $1$; * 安德烈住在车站 $2$,博里斯住在车站 $3$; * 安德烈住在车站 $3$,博里斯住在车站 $2$; * 安德烈住在车站 $3$,博里斯住在车站 $4$; * 安德烈住在车站 $4$,博里斯住在车站 $1$; * 安德烈住在车站 $4$,博里斯住在车站 $3$。 ### 评分系统与子任务描述 #### 子任务 1(25 分) $3 \leq n \leq 50$ #### 子任务 2(25 分) $3 \leq n \leq 500$ #### 子任务 3(50 分) $3 \leq n \leq 40,000$ 翻译来源:GPT 5.2。