結果

問題 No.401 数字の渦巻き
ユーザー bullet_lifebullet_life
提出日時 2018-11-14 20:27:47
言語 Kotlin
(1.9.23)
結果
WA  
実行時間 -
コード長 1,794 bytes
コンパイル時間 10,975 ms
コンパイル使用メモリ 444,096 KB
実行使用メモリ 54,884 KB
最終ジャッジ日時 2024-11-20 17:08:02
合計ジャッジ時間 20,758 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 263 ms
54,404 KB
testcase_01 AC 263 ms
54,340 KB
testcase_02 AC 260 ms
54,420 KB
testcase_03 WA -
testcase_04 WA -
testcase_05 WA -
testcase_06 WA -
testcase_07 WA -
testcase_08 WA -
testcase_09 WA -
testcase_10 WA -
testcase_11 WA -
testcase_12 WA -
testcase_13 WA -
testcase_14 WA -
testcase_15 WA -
testcase_16 WA -
testcase_17 WA -
testcase_18 WA -
testcase_19 WA -
testcase_20 WA -
testcase_21 WA -
testcase_22 WA -
testcase_23 WA -
testcase_24 WA -
testcase_25 WA -
testcase_26 WA -
testcase_27 WA -
testcase_28 WA -
testcase_29 WA -
権限があれば一括ダウンロードができます
コンパイルメッセージ
Main.kt:1:10: warning: parameter 'args' is never used
fun main(args: Array<String>) {
         ^

ソースコード

diff #

fun main(args: Array<String>) {

    val arsz = readLine()!!.toInt()
    var a = Array(arsz, {arrayOfNulls<String>(arsz)})
    var v = "right"
    var x = -1
    var y = 0
    var n = 0

    while(n < arsz * arsz){
        n += 1
        when(v){
            "right" ->{
                if(x < arsz - 1 && a[y][x + 1] == null){
                    x += 1
                    a[y][x] = "00%s ".format(n.toString())
                }
                else{
                    y += 1
                    v = "down"
                    a[y][x] = "00%s ".format(n.toString())
                }
            }
            "down" ->{
                if(y < arsz - 1 && a[y + 1][x] == null){
                    y += 1
                    a[y][x] = "00%s  ".format(n.toString())
                }
                else{
                    x -= 1
                    v = "reft"
                    a[y][x] = "00%s ".format(n.toString())
                }
            }
            "reft" ->{
                if(x > 0 && a[y][x - 1] == null){
                    x -= 1
                    a[y][x] = "00%s ".format(n.toString())
                }
                else{
                    y -= 1
                    v = "up"
                    a[y][x] = "00%s ".format(n.toString())
                }
            }
            "up" ->{
                if(y > 0 && a[y - 1][x] == null){
                    y -= 1
                    a[y][x] = "00%s ".format(n.toString())
                }
                else{
                    x += 1
                    v = "right"
                    a[y][x] = "00%s ".format(n.toString())
                }
            }
        }
    }
    for (i in 0 until arsz){
        for (j in 0 until arsz){
            print(a[i][j])
        }
        println("")
    }
}
0