「EZEC-10」Equalization

题目描述

给你一个长为 $n$ 的数组 $a_1,a_2,\ldots,a_n$。 你可以任选三个整数 $l,r,x\ (1\le l\le r\le n$,$x\in \mathbb Z)$,并将 $a_l,a_{l+1},\ldots,a_r$ 均加上 $x$,称为一次操作。 问最少进行几次操作,才能使 $a$ 中所有元素均相等?并求出能使操作次数最少的不同方案数。 由于方案数可能很大,请对 $10^9+7$ 取模。 **两种方案相同,当且仅当两方案每次操作选择的 $(l,r,x)$ 均相同。** **特别地,不进行任何操作也算一种方案。**

输入输出格式

输入格式


第一行一个整数 $n$。 第二行 $n$ 个整数 $a_1,a_2,\ldots,a_n$。

输出格式


第一行一个整数,表示最少操作次数。 第二行一个整数,表示方案数对 $10^9+7$ 取模的结果。

输入输出样例

输入样例 #1

3
1 2 3

输出样例 #1

2
16

说明

**【样例 1 解释】** 一种可行的方案为:$(l,r,x)=(1,1,1),(3,3,-1)$。 **【数据规模与约定】** **本题采用捆绑测试。** - Subtask 1(1 point):$n=2$。 - Subtask 2(5 points):$n=3$。 - Subtask 3(14 points):保证 $a$ 单调不升或单调不降。 - Subtask 4(20 points):$n\le 10$。 - Subtask 5(20 points):$n\le 16$。 - Subtask 6(40 points):无特殊限制。 对于 $100\%$ 的数据,$1\le n\le 18$,$-10^9\le a\le 10^9$。