解题思路
在圆环上 n 个位置,每个位置有一个整数。选择两个不同的位置作为分割点,沿这两个点切开会将圆环分成两个连续的弧段,要求两个弧段各自至少包含一个位置,且两段上所有整数的和相等。
记整个圆环上所有整数之和为 S。若两段的和相等,则每段的和必然都是 2S。
- 环形转线性处理
将圆环从某个位置“断开”,顺时针展开为一个长度为 n 的线性序列。选择两个不同分割点 i 和 j(不妨设沿顺时针方向 i 在 j 之前),它们将线性序列切割出一段区间 [i,j−1](即从位置 i 到 j−1 的所有整数)。这一段区间的和就是其中一段弧的和,而另一段弧的和为 S 减去这段和。因此问题转化为:在线性序列中统计有多少个区间 [i,j−1] 满足 0≤i<j<n,且区间和恰好为 2S。