题意描述
给定一个1∼n的排列p和一个整数k,要求找到p的一个子序列 {pi1,pi2,⋯,pim}(1≤i1<i2<⋯<im≤n)满足: 恰好有k 个j满足1≤j≤m且pij是pi1,pi2,⋯,pim中从小往大数第j个。
如果有多解,输出任意一组解即可。如果不存在合法的子序列,输出−1。
输入格式
第一行两个整数n,k。 接下来一行 n 个整数p 1 ,p 2 ,⋯,p n 表示给定的排列。
输出格式
如果无解,输出一行一个整数−1。 否则第一行输出一个整数 m 表示子序列的长度。你需要保证 1≤m≤n。 接下来一行输出 m 个整数 i 1 ,i 2 ,⋯,i m 表示子序列的下标。你需要保证 1≤i j ≤n 且 i j <i j+1 ( 1≤j<m)。
样例
输入
4 1
4 2 1 3
输出
3
2 3 4
我的思路
证明了一下,应该是最长上升子序列,但是不会写,所以请教一下大家,谢谢!