题目描述
你有一个长度为 n 的数组 a1,a2,…,an。
你想找到最长的子序列满足如下条件:
- 它是一个回文子序列,长度是奇数或者偶数都可以。
 
- 这个子序列从中间开始是不降的。
 
比如一个长度为 2k 的序列 b1,b2,…,b2k,需要满足
b1=b2k,b2=b2k−1,…,bk=bk+1  并且  bk+1≤bk+2≤⋯≤b2k。
问满足条件的最长的子序列长度是多少,有多少个本质不同的最长子序列。
由于答案很大,输出答案模 109+7 的值。
两个子序列本质不同,当且仅当至少存在一个位置上数字不同。
输入格式
第一行一个整数 n。
接下来一行 n 个整数 a1,a2,…,an。
输出格式
一行,包含两个整数,分别为最长的子序列长度,和本质不同的子序列个数。
输入输出样例 #1
输入 #1
5
3 3 1 2 3
输出 #1
3 3
说明/提示
样例解释:子序列分别为(3,3,3),(3,1,3),(3,2,3)。这里选第 1,3,5 个元素和选第 2,3,5 个元素得
到的序列相同,所以算同一个。
共 10 组数据。
测试点 1,2 满足 n≤20。
测试点 3,4 满足 n≤100。
测试点 5,6 满足 1≤ai≤20。
对于 100% 的数据,满足 1≤n≤5000,1≤ai≤n。