#P7718. 「EZEC-10」Equalization

「EZEC-10」Equalization

题目描述

给你一个长为 nn 的数组 a1,a2,…,ana_1,a_2,\ldots,a_n。

你可以任选三个整数 l,r,x (1≤l≤r≤nl,r,x\ (1\le l\le r\le n,x∈Z)x\in \mathbb Z),并将 al,al+1,…,ara_l,a_{l+1},\ldots,a_r 均加上 xx,称为一次操作。

问最少进行几次操作,才能使 aa 中所有元素均相等?并求出能使操作次数最少的不同方案数。

由于方案数可能很大,请对 109+710^9+7 取模。

两种方案相同,当且仅当两方案每次操作选择的 (l,r,x)(l,r,x) 均相同。

特别地,不进行任何操作也算一种方案。

输入格式

第一行一个整数 nn。

第二行 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n。

输出格式

第一行一个整数,表示最少操作次数。

第二行一个整数,表示方案数对 109+710^9+7 取模的结果。

3
1 2 3
2
16

提示

【样例 1 解释】

一种可行的方案为:(l,r,x)=(1,1,1),(3,3,−1)(l,r,x)=(1,1,1),(3,3,-1)。

【数据规模与约定】

本题采用捆绑测试。

  • Subtask 1(1 point):n=2n=2。
  • Subtask 2(5 points):n=3n=3。
  • Subtask 3(14 points):保证 aa 单调不升或单调不降。
  • Subtask 4(20 points):n≤10n\le 10。
  • Subtask 5(20 points):n≤16n\le 16。
  • Subtask 6(40 points):无特殊限制。

对于 100%100\% 的数据,1≤n≤181\le n\le 18,−109≤a≤109-10^9\le a\le 10^9。