原题链接:PTA | 程序设计类实验辅助教学平台
参考资料:
每日一题——Python实现PAT乙级1030 完美数列(举一反三+思想解读+逐步优化)五千字好文_pat 1030 python-优快云博客
Tips:以下Python代码仅个人理解,非最优算法,仅供参考!多学习其他大佬的AC代码!
N,p = map(int,input().split())
ls = list(map(int,input().split()))
ls.sort()
left = 0
max_len = 0
for right in range(N):
while ls[right] > ls[left] * p:
left += 1
#下面left+1也是python循环条件不满足,也会执行一次
max_len = max(max_len, right - left + 1)
print(max_len)