[Poi2010]Monotonicity
给定一个长度为 n 的整数序列 a,以及一个长度为 k 的比较符号序列 s,其中 si∈{<,>,=}。
请选择下标 1≤p1<p2<⋯<pm≤n,使得对于每个 t=1,2,…,m−1,apt 与 apt+1 之间的关系满足符号 s((t−1)modk)+1:
- 当符号为 < 时,要求 apt<apt+1;
- 当符号为 > 时,要求 apt>apt+1;
- 当符号为 = 时,要求 apt=apt+1。
也就是说,比较符号将按照 s1,s2,…,sk,s1,s2,… 的顺序循环使用。
求满足条件的子序列的最大长度 m。当 m=1 时,不需要满足任何相邻元素之间的关系。
输入格式
第一行包含两个正整数 n 和 k。
第二行包含 n 个整数 a1,a2,…,an。
第三行包含 k 个比较符号 s1,s2,…,sk,符号之间可以用空白字符分隔。每个符号均为 <、> 或 =。
输出格式
输出一个整数,表示满足条件的最长子序列的长度。
样例输入
7 3
2 4 3 1 3 5 3
= = =
样例输出
3
样例解释
可以选择序列中三个值为 3 的元素。相邻元素之间的关系均为 =,因此满足给定的关系序列,最长子序列长度为 3。
数据范围
- 1≤n≤2×104;
- 1≤k≤100;
- 1≤ai≤106。
来源与许可
本题为 POI 2010 试题「Monotonicity」,题面与测试数据整理自 BZOJ。
样例 1
输入
7 3
2 4 3 1 3 5 3
= = =
输出
3