题目描述
输入序列a的长度n及n个元素,输出最长上升子序列长度及f数组及d数组。f[i]表示a[i]作为最后一个元素时的最长上升子序列的长度。d[i]记录所有长度为i的最长上升子序列中,最后一个元素的最小值,规定如果不存在长度为i的最长上升子序列,则d[i]为1000000。
输入
共两行
第一行一个整数,n(1<=n<=1000),表示序列的长度。 第二行n个整数,第i个数即序列a的第i项a[i](1<=a[i]<1000000)。
输出
共三行
第一行一个整数,ans,表示最长上升子序列的长度。
第二行n个整数,分别为f数组的每一项。
第三行n个整数,分别为d数组的每一项。
样例输入
5
3 2 7 6 8
样例输出
3
1 1 2 2 3
2 6 8 1000000 1000000