結果

問題 No.307 最近色塗る問題多くない?
コンテスト
ユーザー javy
提出日時 2015-11-27 23:37:01
言語 Kotlin
(2.3.20)
コンパイル:
kotlinc _filename_ -include-runtime -d main.jar
実行:
kotlin main.jar
結果
RE  
実行時間 -
コード長 1,912 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 9,602 ms
コンパイル使用メモリ 468,488 KB
実行使用メモリ 85,164 KB
最終ジャッジ日時 2026-05-14 04:57:52
合計ジャッジ時間 23,231 ms
ジャッジサーバーID
(参考情報)
judge1_1 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 20 RE * 16
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

package Yukicoder

/**
 * Created by hichikawa on 2015/11/12.
 */
fun main(args: Array<String>) {
    fun readLineLongArray(): List<Long> {
        val str = readLine() as String
        val arrStr = str.split(" ")
        val ret = arrStr.map { it.toLong() }
        return ret
    }

    fun readLineLong(): Long {
        val str = readLine() as String
        return str.toLong()
    }

    fun readLineInt(): Int {
        val str = readLine() as String
        return str.toInt()
    }

    fun readLineIntArray() : List<Int> {
        val str = readLine() as String
        val arrStr = str.split(" ")
        val ret = arrStr.map { it.toInt() }
        return ret
    }

    fun repaintArray(arrArea : Array<Array<Int>>, x : Int, y : Int, color : Int, H : Int, W : Int) : Array<Array<Int>>{
        if (arrArea[x][y] == color) {
            return arrArea
        }
        arrArea[x][y] = color
        if (x > 0 && arrArea[x-1][y] != color) {
            repaintArray(arrArea, x-1, y, color, H, W)
        }
        if (y > 0 && arrArea[x][y-1] != color) {
            repaintArray(arrArea, x, y-1, color, H, W)
        }
        if (x < H-1 && arrArea[x+1][y] != color) {
            repaintArray(arrArea, x+1, y, color, H, W)
        }
        if (y < W-1 && arrArea[x][y+1] != color) {
            repaintArray(arrArea, x, y+1, color, H, W)
        }
        return arrArea
    }

    val input1 = readLineIntArray()
    val H = input1[0]
    val W = input1[1]
    var arrArea = Array(H , {readLineIntArray().toTypedArray()})
    val repaintNum = readLineInt()
    for (i in 1..repaintNum) {
        val input = readLineIntArray()
        repaintArray(arrArea, input[0]-1, input[1]-1, input[2], H, W)
    }
    for (line in arrArea) {
        for ((i, c) in line.withIndex()) {
            if (i!=0) {
                print(" ")
            }
            print(c)
        }
        println()
    }
}
0