期货市场
时间限制:1秒 内存限制:256M
【问题描述】
期货市场上流行的“追涨杀跌”,意思是每次你购买期货时的价格一定要比你上次购买时的价格高。给定连续的 \(N\) 天中每天的期货价格,你可以在任何一天购买一次期货,但是购买时的价格一定要比你上次购买时的价格高。写一个程序,求出最多能购买多少次,以及有多少种方案。
注意:在计算方案的数量的时候,如果两个方案的期货价序列相同,虽然时间不同,但这样的两个方案被认为是相同的(只能算做一个方案)。
【输入格式】
第一行包含整数 \(N\),表示 \(N\) 天。
接下来的 \(N\) 行,每行一个整数,其中第 \(i+1\) 行表示第 \(i\) 天的价格。
【输出格式】
第一行的整数表示可以最多购买的次数;
第二行的整数,表示最多购买次数的方案数 \(mod\ (10^9+7)\)。
【输入输出样例】
Input
6
1
3
2
2
4
5
Output
4
2
【输入输出样例解释】
最多购买4次,有2种方案:
方案1:1 3 4 5
方案2:1 2 4 5
【数据说明】
对于 \(100\%\) 的数据 \(1≤N≤5000\),\(1≤\)价格\(≤10^9\)。
【来源】
Mr.he