結果
問題 | No.179 塗り分け |
ユーザー | くわい |
提出日時 | 2015-09-23 18:26:07 |
言語 | Scala(Beta) (3.4.0) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,459 bytes |
コンパイル時間 | 6,989 ms |
コンパイル使用メモリ | 243,464 KB |
最終ジャッジ日時 | 2024-11-14 19:15:43 |
合計ジャッジ時間 | 7,466 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
[31m[31m-- [E040] Syntax Error: Main.scala:51:32 ---------------------------------------[0m[0m [31m51 |[0m [33mdef[0m [36mmain[0m([36margs[0m: [35mArray[0m[[35mString[0m]) { [31m[31m |[0m ^[0m [31m |[0m '=' expected, but '{' found 1 error found
ソースコード
import java.util.Scanner object Problem179 { def canPaint(move: (Int, Int), sorted: Seq[(Int, Int)], painted: Map[(Int, Int), String]): Boolean = { if (sorted.isEmpty) { return true } val from = sorted.head painted.get(from) match { case None => { val to = (move._1 + from._1, move._2 + from._2) if (sorted.contains(to)) { canPaint(move, sorted.tail, painted + (from -> "RED") + (to -> "BLUE")) } else { return false } } case _ => canPaint(move, sorted.tail, painted) } } def proc(paintedBlack: Seq[(Int, Int)]): String = { val sorted = paintedBlack.sorted val painted = sorted.size if (painted == 0 || painted % 2 != 0) { return "NO" } // 先頭からの差分をリスト化する val (keyX, keyY) = sorted.head val moveList = { for { (x, y) <- sorted.tail } yield { (x - keyX, y - keyY) } } for (move <- moveList) { val ok = canPaint(move, sorted, Map[(Int, Int), String]()) if (ok) { return "YES" } } "NO" } def main(args: Array[String]) { val sc = new Scanner(System.in) val (h, w) = (sc.nextInt(), sc.nextInt()) val paintedBlack = (for (i <- 0 until h) yield { sc.next().zipWithIndex.filter(_._1 == '#').map(x => (i, x._2)) }).flatten val result: String = proc(paintedBlack) println(result) } }