結果
| 問題 |
No.390 最長の数列
|
| コンテスト | |
| ユーザー |
t8m8⛄️
|
| 提出日時 | 2016-07-16 18:54:06 |
| 言語 | Go (1.23.4) |
| 結果 |
AC
|
| 実行時間 | 765 ms / 5,000 ms |
| コード長 | 501 bytes |
| コンパイル時間 | 11,899 ms |
| コンパイル使用メモリ | 231,188 KB |
| 実行使用メモリ | 13,952 KB |
| 最終ジャッジ日時 | 2024-10-02 10:59:16 |
| 合計ジャッジ時間 | 17,626 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 15 |
ソースコード
package main
import "fmt"
const MAX = 1000000
func main() {
var n int
fmt.Scan(&n)
a := make([]int, n)
for i := 0; i < n; i++ {
fmt.Scan(&a[i])
}
dp := make([]int, MAX+1)
for _, v := range a {
dp[v] = 1
}
ans := 1
for i := 1; i < MAX+1; i++ {
if dp[i] <= 0 {
continue
}
for j := i+i; j < MAX+1; j+=i {
if dp[j] != 0 {
dp[j] = max(dp[i] + 1, dp[j])
}
}
ans = max(dp[i], ans)
}
fmt.Println(ans)
}
func max(a, b int) int {
if a > b {
return a
}
return b
}
t8m8⛄️