結果
| 問題 | No.979 Longest Divisor Sequence |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-06-18 02:50:30 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
AC
|
| 実行時間 | 612 ms / 2,000 ms |
| コード長 | 535 bytes |
| 記録 | |
| コンパイル時間 | 201 ms |
| コンパイル使用メモリ | 85,888 KB |
| 実行使用メモリ | 130,176 KB |
| 最終ジャッジ日時 | 2026-03-24 20:52:16 |
| 合計ジャッジ時間 | 2,274 ms |
|
ジャッジサーバーID (参考情報) |
judge3_1 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 16 |
ソースコード
def divisors(M):#Mの約数列 O(n^(0.5+e))
import math
d=[]
i=1
while math.sqrt(M)>=i:
if M%i==0:
d.append(i)
if i**2!=M:
d.append(M//i)
i=i+1
d.sort()
return d
import sys
input=sys.stdin.buffer.readline
N=int(input())
A=list(map(int,input().split()))
data=[0]*(max(A)+1)
for i in range(N):
test=1
d=divisors(A[i])
for D in d:
if D!=A[i]:
test=max(test,data[D]+1)
data[A[i]]=max(data[A[i]],test)
print(max(data))