結果
| 問題 | No.127 門松もどき |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-01-15 23:31:32 |
| 言語 | Scala(Beta) (3.8.4) |
| 結果 |
AC
|
| 実行時間 | 884 ms / 5,000 ms |
| + 413µs | |
| コード長 | 583 bytes |
| 記録 | |
| コンパイル時間 | 7,439 ms |
| コンパイル使用メモリ | 274,304 KB |
| 実行使用メモリ | 165,800 KB |
| 最終ジャッジ日時 | 2026-07-28 11:20:29 |
| 合計ジャッジ時間 | 25,581 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge3_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| 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)
}