結果
問題 | No.26 シャッフルゲーム |
ユーザー | yo-kondo |
提出日時 | 2019-01-03 16:33:21 |
言語 | Kotlin (1.9.23) |
結果 |
AC
|
実行時間 | 348 ms / 5,000 ms |
コード長 | 2,007 bytes |
コンパイル時間 | 13,839 ms |
コンパイル使用メモリ | 441,684 KB |
実行使用メモリ | 57,136 KB |
最終ジャッジ日時 | 2024-04-30 19:47:19 |
合計ジャッジ時間 | 18,214 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 329 ms
56,928 KB |
testcase_01 | AC | 327 ms
56,916 KB |
testcase_02 | AC | 343 ms
56,936 KB |
testcase_03 | AC | 339 ms
56,860 KB |
testcase_04 | AC | 334 ms
57,068 KB |
testcase_05 | AC | 334 ms
57,052 KB |
testcase_06 | AC | 348 ms
57,136 KB |
testcase_07 | AC | 338 ms
57,000 KB |
testcase_08 | AC | 343 ms
57,044 KB |
testcase_09 | AC | 343 ms
56,948 KB |
コンパイルメッセージ
Main.kt:21:10: warning: parameter 'args' is never used fun main(args: Array<String>) { ^
ソースコード
// No.26 シャッフルゲーム // https://yukicoder.me/problems/no/26 package no01.yukicoder.no26 import java.util.Collections.swap /** インプットデータ */ data class InputData( /** ○印が付いているカップの位置 */ val firstIndex: Int, /** カップを入れ替えた回数 */ val count: Int, /** 入れ替えるカップの位置番号 */ val replacement: List<Pair<Int, Int>> ) /** * エントリポイント */ fun main(args: Array<String>) { val input = getStandardInput() println(shuffleGame(input)) } /** * ○印がついているカップの位置を返します。 */ fun shuffleGame(input: List<String>): Int { val data = createInputData(input) val mark = mutableListOf(0, 0, 0) // 初期値の設定 for (i in mark.indices) { if (i == data.firstIndex - 1) { mark[i] = 1 } } // 入れ替え for (v in data.replacement) { val (x, y) = v swap(mark, x - 1, y - 1) } // 解答を探す for ((i, v) in mark.withIndex()) { if (v == 1) { return i + 1 } } // ここには来ない return 0 } /** * 標準入力から取得した文字列をInputDataに変換して返します。 */ fun createInputData(input: List<String>): InputData { val firstIndex = input[0].toInt() val count = input[1].toInt() val replacement = mutableListOf<Pair<Int, Int>>() for ((i, v) in input.withIndex()) { if (i == 0 || i == 1) { continue } val sp = v.split(" ") replacement.add(Pair(sp[0].toInt(), sp[1].toInt())) } return InputData(firstIndex, count, replacement) } /** * 標準入力から文字列を全て取得します。 */ fun getStandardInput(): List<String> { val lines = mutableListOf<String>() var line: String? line = readLine() while (line != null) { lines.add(line) line = readLine() } return lines }