結果
問題 | No.179 塗り分け |
ユーザー |
|
提出日時 | 2019-05-16 08:32:40 |
言語 | Kotlin (2.1.0) |
結果 |
AC
|
実行時間 | 1,199 ms / 3,000 ms |
コード長 | 1,319 bytes |
コンパイル時間 | 15,012 ms |
コンパイル使用メモリ | 442,000 KB |
実行使用メモリ | 91,140 KB |
最終ジャッジ日時 | 2024-07-23 15:01:45 |
合計ジャッジ時間 | 37,699 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 6 |
other | AC * 40 |
ソースコード
package yukicoder fun main() { val (h, w) = readLine()!!.split(" ").map(String::toInt) val blacks = (0 until h).flatMap { h2 -> readLine()!! .mapIndexed { index, c -> Pair(index, c) } .filter { it.second != '.' } .map { Pair(h2, it.first) } } if (blacks.isEmpty() || blacks.size % 2 != 0) { println("NO") return } fun canCopy(): Boolean { for (moveH in -h until h) { for (moveW in -w until w) { if (moveH == 0 && moveW == 0) { continue } var tmpBlacks = blacks.toMutableSet() for (red in blacks) { if (!tmpBlacks.contains(red)) { continue } val blue = Pair(red.first + moveH, red.second + moveW) if (!tmpBlacks.contains(blue)) { break } tmpBlacks.remove(red) tmpBlacks.remove(blue) } if (tmpBlacks.isEmpty()) { return true } } } return false } when (canCopy()) { true -> println("YES") false -> println("NO") } }