結果
問題 | No.417 チューリップバブル |
ユーザー | Eliza_0x |
提出日時 | 2018-05-19 15:58:24 |
言語 | Scala(Beta) (3.4.0) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,054 bytes |
コンパイル時間 | 6,829 ms |
コンパイル使用メモリ | 231,928 KB |
最終ジャッジ日時 | 2024-11-14 20:25:16 |
合計ジャッジ時間 | 7,354 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
[31m[31m-- [E040] Syntax Error: Main.scala:20:71 ---------------------------------------[0m[0m [31m20 |[0m [33mdef[0m [36mdfs[0m([36mcur[0m: [35mInt[0m, [36malready_access[0m: scala.collection.mutable.Set[[35mInt[0m]) { [31m[31m |[0m ^[0m [31m |[0m '=' expected, but '{' found 1 error found
ソースコード
case class Edge(to: Int, cost: Int) object Main extends App { val scan = new java.util.Scanner(System.in) val n, m = scan.next().toInt val points = (1 to n).toArray.map(_ => scan.next().toInt) val edges: Array[List[Edge]] = Array.fill(n)(List()) for (_ <- 1 until n) { val from, to, cost = scan.next().toInt edges(from) = Edge(to, cost) :: edges(from) edges(to) = Edge(from, cost) :: edges(to) } val memo: Array[Array[Int]] = Array.fill(n, m+1)(0) dfs(0, scala.collection.mutable.Set()) println(memo(0).max) def dfs(cur: Int, already_access: scala.collection.mutable.Set[Int]) { already_access += cur for (i <- 0 to m) memo(cur)(i) = points(cur) for (edge <- edges(cur); if !already_access.exists(_ == edge.to)) { dfs(edge.to, already_access) for (i <- m to 0 by -1; j <- i+edge.cost*2 to 0 by -1) { if (i-(j+edge.cost*2) >= 0) { memo(cur)(i) = math.max( memo(cur)(i), memo(cur)(i-(j+edge.cost*2)) + memo(edge.to)(j)) } } } } }