CF394D Physical Education and Buns

题目描述

SESC 的体育老师也是个数学爱好者。他最喜欢的数学主题是数列。因此,老师希望学生们按照不递减的身高排成一排,并且这些身高构成一个等差数列。 为了实现这个目标,体育老师从食堂订购了很多神奇的小面包。神奇小面包有两种类型:学生每吃一个第一种类型的小面包,他的身高就会增加 $1$;每吃一个第二种类型的小面包,他的身高就会减少 $1$。考虑到学生们的健康,老师并不希望学生们吃太多小面包。更具体地说,老师希望所有学生中吃小面包最多的那个人,吃的小面包数尽量少。 请你帮助老师,求出为达成目标,所有学生中最多需要吃的小面包数。并输出实现目标时可能的一组方案,即最终最矮学生的身高和等差数列的公差。

输入格式

第一行包含一个整数 $n$($2 \leq n \leq 10^{3}$),表示学生人数。第二行包含 $n$ 个以空格分隔的整数,表示所有学生的身高。每个学生的身高的绝对值不超过 $10^4$。

输出格式

第一行输出一个整数,表示所有学生中最多需要吃的小面包数。第二行输出两个以空格分隔的整数,分别表示最终最矮学生的身高和等差数列的公差。注意,公差应为非负整数。 如果有多种方案,输出任意一种都可以。

说明/提示

以第一个样例为例,我们可以如下操作: - 不喂第 1 个学生,他的身高保持为 $-3$; - 给第 2 个学生两个第一种类型的小面包,他的身高变为 $-2$; - 给第 3 个学生两个第一种类型的小面包,他的身高变为 $0$; - 给第 4 个学生两个第一种类型的小面包,他的身高变为 $-1$; - 给第 5 个学生两个第二种类型的小面包,他的身高变为 $1$。 总结起来,学生们按不递减身高排成等差数列:$-3, -2, -1, 0, 1$。最终最矮的学生身高是 $-3$,公差为 $1$。所有学生中最多吃的小面包数是 $2$。 由 ChatGPT 5 翻译