結果
| 問題 |
No.24 数当てゲーム
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-03-23 23:15:18 |
| 言語 | Kotlin (2.1.0) |
| 結果 |
AC
|
| 実行時間 | 322 ms / 5,000 ms |
| コード長 | 1,607 bytes |
| コンパイル時間 | 14,427 ms |
| コンパイル使用メモリ | 436,428 KB |
| 実行使用メモリ | 57,120 KB |
| 最終ジャッジ日時 | 2024-11-20 14:34:05 |
| 合計ジャッジ時間 | 16,695 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 10 |
コンパイルメッセージ
Main.kt:7:10: warning: parameter 'args' is never used
fun main(args: Array<String>) {
^
ソースコード
package yukicoder.no24
/**
* エントリポイント
* @param args コマンドライン引数
*/
fun main(args: Array<String>) {
val in1 = readLine()
val in2 = mutableListOf<String>()
var line: String?
line = readLine()
while (line != null) {
in2.add(line)
line = readLine()
}
println(numbersGame(in1, in2))
}
/**
* 数あてゲームの回答を返します。
* @param turn ターン数
* @param qaList 質問と回答
*/
fun numbersGame(@Suppress("UNUSED_PARAMETER") turn: String?,
qaList: List<String>): String {
// int型の配列を10個作る。初期値は0
// 0:初期値、1:NO、2:YES
val numAry = IntArray(10, { 0 })
for (qa in qaList) {
val sp = qa.split(" ")
val qList = sp.take(sp.size - 1).map { it.toInt() }
val a = sp[sp.size - 1]
if (a == "NO") {
for (q in qList) {
numAry[q] = 1
}
}
if (a == "YES") {
// 0と2以外はすべて1
for ((i, num) in numAry.withIndex()) {
if ((num == 0 || num == 2) && qList.any { it == i }) {
numAry[i] = 2
} else {
numAry[i] = 1
}
}
}
}
// 結果を探す
for ((i, num) in numAry.withIndex()) {
if (num == 2) {
return i.toString()
}
}
for ((i, num) in numAry.withIndex()) {
if (num == 0) {
return i.toString()
}
}
// ここには来ないはず
return ""
}