結果
問題 |
No.390 最長の数列
|
ユーザー |
|
提出日時 | 2024-10-05 18:13:05 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,534 ms / 5,000 ms |
コード長 | 474 bytes |
コンパイル時間 | 390 ms |
コンパイル使用メモリ | 82,088 KB |
実行使用メモリ | 127,328 KB |
最終ジャッジ日時 | 2024-10-05 18:13:16 |
合計ジャッジ時間 | 9,460 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 15 |
ソースコード
N = int(input()) A = sorted(list(map(int,input().split()))) D = [-1]*(10**6+1) for i in range(N): D[A[i]] = i G = {i:[] for i in range(N)} for i in range(N): a = A[i] for j in range(1,a): if j*j>a:break if a%j==0: if D[j]>=0: G[i].append(D[j]) if D[a//j]>=0 and a//j!=a: G[i].append(D[a//j]) dp = [1]*N for i in range(N): for j in G[i]: dp[i] = max(dp[i],dp[j]+1) print(max(dp))