最近小强主办了一场国际交流会,大家在会上以一个圆桌围坐在一起。由于大会的目的就是让不同国家的人感受一下不同的异域气息,为了更好地达到这个目的,小强希望最大化邻座两人之间的差异程度和。为此,他找到了你,希望你能给他安排一下座位,达到邻座之间的差异之和最大。
输入描述:
输入总共两行。 第一行一个正整数n,代表参加国际交流会的人数(即圆桌上所坐的总人数,不单独对牛牛进行区分) 第二行包含n个正整数,第i个正整数ai代表第i个人的特征值。 其中3 ≤ n ≤ 10^5, 1 ≤ ai ≤ 10^9 (注意数据溢出) 注意:邻座的定义为: 第i人(1<i<n)的邻座为i-1,i+1,第1人的邻座是2,n,第n人的邻座是1,n-1。 邻座i,j的差异值计算方法为|ai-aj|。 每对邻座差异值只计算一次。
输出描述:
输出总共两行。 第一行输出最大的差异值。 第二行输出用空格隔开的n个数,为重新排列过的特征值。(注意:不输出编号) 如果最大差异值情况下有多组解,输出任意一组即可。
输入
4 3 6 2 9
输出
20 6 2 9 3
说明
这么坐的话,差异和为|6−2∣+∣2−9∣+∣9−3∣+∣3−6∣= 20为最大的情况。