#P2473. 小C的序列
小C的序列
问题描述
小 C 非常喜欢数字。
这次,他得到了一个长度为 的正整数数列 ,第 项为 。
现在,小 C 想要找出来 中 最长的子序列 ,使得对于 任意 的二元组 , 和 满足 倍数关系。 小 C 突然不会最长不下降子序列了,于是找到了你来帮他求出最长的子序列的长度。
子序列:对于长度为 的数列 ,对于 ,若 $b_1 = a_{p_1}, b_2 = a_{p_2} , · · · , b_m = a_{p_m}$,则必须要满足 ,这样的数列 称为 的子序列。其中子序列 可以为空。
倍数关系:对于两个数 ,两者成倍数关系,即 能被 整除,或者 能被 整除,两者至少一种成立。
输入格式
第一行有一个正整数 ,表示数列 的长度;
第二行有 个正整数,第 个数表示 。
输出格式
仅一行一个数,表示子序列长度的最大值。
样例
输入#1
5
1 2 3 8 16
输出#1
4
最长子序列为 ,长度为 。
输入#2
10
1 4 6 3 9 11 16 24 42 36
输出#2
4
最长长度为 ,选取方案不唯一,其中一种最长的子序列为 。
数据范围
对于所有数据:。
如有需要,请使用scanf读入以及减少使用STL,以降低程序本身带来的常数。