結果
| 問題 |
No.127 門松もどき
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-01-15 23:31:32 |
| 言語 | Scala(Beta) (3.6.2) |
| 結果 |
AC
|
| 実行時間 | 1,549 ms / 5,000 ms |
| コード長 | 583 bytes |
| コンパイル時間 | 8,414 ms |
| コンパイル使用メモリ | 263,548 KB |
| 実行使用メモリ | 173,172 KB |
| 最終ジャッジ日時 | 2024-06-28 22:12:17 |
| 合計ジャッジ時間 | 41,537 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 23 |
ソースコード
import scala.io.StdIn
object Main extends App {
val N = StdIn.readInt()
val A = StdIn.readLine().split(" ").map(_.toInt)
val dpL, dpR = Array.fill(N)(Array.fill(N)(1))
(1 until N).foreach { d =>
(0 until N - d).foreach { l =>
val r = l + d
val pdpL = dpL(l)(r - 1)
val pdpR = dpR(l + 1)(r)
dpL(l)(r) = if (A(l) >= A(r)) pdpL else Seq(pdpL, (pdpR + 1)).max
dpR(l)(r) = if (A(l) <= A(r)) pdpR else Seq(pdpR, (pdpL + 1)).max
}
}
println(((0 until N).map(dpL(_)(N - 1)) ++ dpR(0)).max)
}