結果
問題 |
No.2218 Multiple LIS
|
ユーザー |
|
提出日時 | 2023-03-16 18:52:22 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 633 ms / 3,000 ms |
コード長 | 464 bytes |
コンパイル時間 | 187 ms |
コンパイル使用メモリ | 82,040 KB |
実行使用メモリ | 91,900 KB |
最終ジャッジ日時 | 2024-09-18 09:27:38 |
合計ジャッジ時間 | 8,540 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 39 |
ソースコード
import math n = int(input()) a = list(map(int, input().split())) m = 10 ** 5 dp = [0 for _ in range(n)] idx = [None for _ in range(m + 1)] for i in range(n): for x in range(1, int(math.sqrt(a[i])) + 1): if a[i] % x == 0: if not idx[x] is None: dp[i] = max(dp[i], dp[idx[x]] + 1) if x != a[i] // x and not idx[a[i] // x] is None: dp[i] = max(dp[i], dp[idx[a[i] // x]] + 1) dp[i] = max(dp[i], 1) idx[a[i]] = i print(max(dp))