题目:
输入样例:
10 8
2 3 20 4 5 1 6 7 8 9
输出样例:
8
分析:
1.首先这道题不能从假设数列中最多所有的数可以构成完美数列开始,然后发现M>m*p后再进行排除(从大到小)。这样做每次要排除时因该排除哪个数?就算第一次排除对了,还是会对之后的判断产生影响,即后面的判断是不准的,最后结果肯定有对有错。
2.最好还是从小到大判断是否能构成完美数列,先用vector容器存入所有的数(用数组也可,定义数组大小>=105即可),用sort()升序排序,因为只有大小尽可能接近的两个数满足M<=m*p的可能性最大,所以只需判断尽可能接近的数,例如:若要判断3个数的数列是否符合条件,则只需判断间隔1个数的两个数是否有符合条件的。
3.因为都是正整数,p>=1,数列只有一个数时M&