結果
問題 | 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) }