难解的问题
测试数据来自 system/1369
描述
在你的帮助下,蔚蓝来到了埃及.在金字塔里,蔚蓝看到了一个问题,传说,能回答出这个问题的人就能受到埃及法老的祝福,可是蔚蓝日夜奋战,还是想不出来,你能帮帮他么?(XXX: 胡扯,教主怎么可能想不出来= _ =||)(WS这人说的=。=)
问题是这样的:
给定一个序列<a1,a2,\.\.\.,an>.求最长上升子序列(lis)p1<p2<\.\.\.<pw满足a[p1]<a[p2]<\.\.\.<a[pw]
例如65 158 170 299 300 155 207 389
LIS=<65,158,170,299,300,389>。
但是,现在还有一个附加条件:求出的最长上升子序列必须含有第K项。
比如,在上面的例子中,要求求出的最长上升子序列必须含有第6项,那么最长上升子序列就是:65 155 207 389。
格式
输入格式
第一行是用空格隔开的两个正整数N、K,含义同上所述.
第二行N个数,即给出的序列.
输出格式
仅有一个数,表示含有第K项的最长上升子序列的长度.
样例1
样例输入1
5 3
1 2 3 2 1
样例输出1
3
限制
各个测试点1s
提示
对于60%的数据,N<=10000;
对于100%的数据,1<=n<=300000 ,1<=k<=n,序列的每一个数为小于2^31-1 的非负整数.
来源
Super Pig(蔚蓝)