枚举 · 例15-丢手绢
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}“丢~丢~丢手绢,轻轻地放在小朋友的后面,大家不要告诉她,快点快点抓住她,快点快点抓住她。”
\hspace{15pt}牛客幼儿园的小朋友们围成了一个圆圈准备玩丢手绢的游戏,但是小朋友们太小了,不能围成一个均匀的圆圈,即小朋友之间的间隔可能不一致。为了大家能够愉快的玩耍,我们需要知道离得最远的两个小朋友离得有多远(如果太远的话牛老师就要来帮忙调整队形啦!)。
\hspace{15pt}因为是玩丢手绢,所以小朋友只能沿着圆圈外围跑,所以我们定义两个小朋友的距离为沿着圆圈顺时针走或者逆时针走的最近距离。
\hspace{15pt}现在,牛客幼儿园的小朋友们已经站好了,请你计算离得最远的两个小朋友离得有多远。

输入描述:

\hspace{15pt}第一行输入一个整数 n \left(2 \leqq n \leqq 10^5\right) ,表示有 n 个小朋友玩丢手绢的游戏。
\hspace{15pt}此后 n 行,第 i 行输入一个整数 a_i \left(1 \leqq a_i \leqq 10^9\right) 代表第 i-1 个小朋友顺时针到第 i 个小朋友的距离。
\hspace{15pt}最后一行输入一个整数 a_n \left(1 \leqq a_n \leqq 10^9\right) 代表第 n 个小朋友顺时针到第一个小朋友的距离。

\hspace{15pt}除此之外,保证全部的 a_i 的和不超过 2^{31} - 1

输出描述:

\hspace{15pt}在一行上输出一个整数,代表离得最远的两个小朋友之间的距离。
示例1

输入

复制
3
1
2
3

输出

复制
3

说明

\hspace{15pt}在这个样例中,小朋友们间的距离描述如下:
\hspace{23pt}\bullet\,第一个小朋友和第二个小朋友之间,顺时针走的距离是 1 ,逆时针走的距离是 5 ,根据定义,我们记他们之间的距离为 1
\hspace{23pt}\bullet\,第二个小朋友和第三个小朋友之间,顺时针走的距离是 2 ,逆时针走的距离是 4 ,根据定义,我们记他们之间的距离为 2
\hspace{23pt}\bullet\,第三个小朋友和第一个小朋友之间,顺时针走的距离是 3 ,逆时针走的距离是 3 ,根据定义,我们记他们之间的距离为 3
\hspace{15pt}所以离得最远的两个小朋友之间的距离是 3