问题6922--困牛放牧

6922: 困牛放牧

[命题人 : ]
时间限制 : 1.000 sec  内存限制 : 128 MiB

题目描述

【题目描述】

农夫约翰的N头牛总是在农场的远处游荡!他需要你的帮助把他们赶回来。

农场里的田地又长又细——我们可以把它想象成一条数字数轴,在这条数轴上,一头牛可以占据任何整数位置。目前有N头奶牛位于不同的整数位置,农夫约翰希望移动它们,使它们占据连续的位置(例如,位置345678)。

不幸的是,奶牛很困,农夫约翰很难引起它们的注意,让它们动起来。在任何时间点,只有当奶牛是“端点”(所有奶牛中的最小或最大位置)时,他才能让奶牛移动。当他移动一头牛时,他可以指示它移动到任何未占用的整数位置,只要在这个新位置它不再是端点。观察到,随着时间的推移,这些类型的移动往往会将奶牛推得越来越近。

请确定在奶牛被分组到N个连续位置所需要的最小和最大移动次数

【输入格式】(herding.in):

第一行输入包含N3N10^5). 接下来的N行中的每一行包含单个奶牛的整数位置,范围为110^9

【输出格式】(herding.out):

第一行输出将奶牛分组所需的最少移动次数。

第二行输出将奶牛分组所需要的最大移动次数。

【样例输入】:

3

7

4

9

【样例输出】:

1

2

【样例说明】

最小移动次数为1——如果农夫约翰将奶牛从4号位置移动到8号位置,那么奶牛将位于连续的789号位置。最大移动次数为2。例如,可以将9号位置的奶牛移动到6号位置,然后将7号位置的牛移动到5号位置。

来源/分类