#4091. USACO 2012 二月比赛 铜牌组 Rope Folding
USACO 2012 二月比赛 铜牌组 Rope Folding
题目描述
农夫约翰有一根长度为 L(1 ≤ L ≤ 10,000)的绳子,上面打了 N 个结(1 ≤ N ≤ 100),其中包括两个端点(位置 0 和 L)。
FJ 可以在绳子上选择一个 非端点 的位置 f(0 < f < L)进行一次折叠,使得折叠后左右两段绳子上的 所有结 都 关于折叠点对称(即两两重合)。
折叠时允许一侧多出多余的绳段,但 折叠点必须不是端点。
求满足条件的折叠点 f 的数量。

输入格式
- 第 1 行:两个空格分隔的整数 N 和 L。
- 第 2~N+1 行:每行一个整数 k_i(0 ≤ k_i ≤ L),表示第 i 个结的位置。
保证 0 和 L 一定出现。
输出格式
- 第 1 行:一个整数,表示合法的折叠点数量。
样例
样例输入
5 10
0
10
6
2
4
样例输出
4
样例解释
- 绳子长度 L = 10,结位置为 {0, 2, 4, 6, 10}。
- 合法折叠点:1、2、3、8 共 4 个。
数据范围与提示
- 1 ≤ N ≤ 100
- 1 ≤ L ≤ 10,000
- 所有结位置互不相同
- 折叠点必须是 0 < f < L 的整数