小红的陡峭值(二)
题号:NC289517
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
64bit IO Format: %lld

题目描述

\hspace{15pt}小红定义一个数组的陡峭值为:每两个相邻的元素,差值的绝对值之和。例如,数组 \{2,3,1\} 的陡峭值是 |2-3|+|3-1|=3
\hspace{15pt}现在小红拿到了一个由 n 个整数组成的数组 \{a_1,a_2,\dots,a_n\},她希望你将该数组重新排列,使得数组的陡峭值尽可能小。请你输出小红有多少种不同的排列方案使得数组的陡峭值最小,并输出这个最小值。
\hspace{15pt}两个方案被视为不同的,当且仅当存在一个位置 i 使得两个方案中 a_i 不同。

输入描述:

\hspace{15pt}第一行输入一个整数 n \left(3 \leqq n \leqq 100\right) 代表数组中的元素个数。
\hspace{15pt}第二行输入 n 个整数 a_1,a_2,\dots,a_n \left(1 \leqq a_i \leqq 100\right) 代表数组中的元素。

输出描述:

\hspace{15pt}在一行上输出两个整数,分别代表小红有多少种不同的排列方案使得数组的陡峭值最小、这个最小值。
示例1

输入

复制
3
1 2 2

输出

复制
2 1

说明

\hspace{15pt}在这个样例中,重新排列可以得到:
\hspace{23pt}\bullet\,\{1,2,2\},此时的陡峭值为 |1-2|+|2-2|=1
\hspace{23pt}\bullet\,\{2,1,2\},此时的陡峭值为 |2-1|+|1-2|=2
\hspace{23pt}\bullet\,\{2,2,1\},此时的陡峭值为 |2-2|+|2-1|=1
\hspace{15pt}综上,最小的陡峭值为 1,有 2 种不同的排列方案。