早教吧 育儿知识 作业答案 考试题库 百科 知识分享

求c++程序如果一个点在一条线段上(包括这个点是线段端点的情况),我们说“这条线段覆盖了这个点”。我们有n个在一条水平直线上排列的点。请你编写程序计算一下:如果用3条线段覆

题目详情
求c++程序
如果一个点在一条线段上(包括这个点是线段端点的情况),我们说“这条线段覆盖了这个点”。
我们有n个在一条水平直线上排列的点。请你编写程序计算一下:如果用3条线段覆盖所有的点,这3条线段的长度之和最小是多少?注意:既然说是3条,当然就不允许某两条是首尾相接的,否则就是2条了,而且,任何线段的长度都要大于0。
Input
第一行为整数n(6 <= n <= 100 ),表示点的数量。
第2行,有n - 1个整数(两个整数间用1个空格隔开),表示其它各点到最左端的点的距离,单位是厘米。已知这些整数都不会超过40000。
Output
只有一个整数,表示用3条线段覆盖所有点时,它们长度之和的最小值,单位是厘米。
▼优质解答
答案和解析
最后一个点-第一个点-相邻两点之间的最大距离-相邻两点间的第二大距离
相邻两点之间的最大距离和相邻两点间的第二大距离允许相等。