結果

問題 No.9 モンスターのレベル上げ
ユーザー javyjavy
提出日時 2015-11-28 02:36:20
言語 Kotlin
(1.9.23)
結果
TLE  
実行時間 -
コード長 2,162 bytes
コンパイル時間 14,335 ms
コンパイル使用メモリ 454,860 KB
実行使用メモリ 103,104 KB
最終ジャッジ日時 2024-04-30 10:39:19
合計ジャッジ時間 18,623 ms
ジャッジサーバーID
(参考情報)
judge4 / judge5
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 288 ms
63,808 KB
testcase_01 AC 289 ms
98,172 KB
testcase_02 TLE -
testcase_03 -- -
testcase_04 -- -
testcase_05 -- -
testcase_06 -- -
testcase_07 -- -
testcase_08 -- -
testcase_09 -- -
testcase_10 -- -
testcase_11 -- -
testcase_12 -- -
testcase_13 -- -
testcase_14 -- -
testcase_15 -- -
testcase_16 -- -
testcase_17 -- -
testcase_18 -- -
testcase_19 -- -
権限があれば一括ダウンロードができます
コンパイルメッセージ
Main.kt:6:10: warning: parameter 'args' is never used
fun main(args: Array<String>) {
         ^
Main.kt:65:46: warning: no cast needed
        val tmpAns : Int = mikataCount.max() as Int
                                             ^

ソースコード

diff #

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 readLineDoubleArray(): List<Double> {
        val str = readLine() as String
        val arrStr = str.split(" ")
        val ret = arrStr.map { it.toDouble() }
        return ret
    }


    fun decideMikata (mikataLevel : Array<Int>, mikataCount : Array<Int>) : Int{
        var tmpIndex = 0
        for (i in 1..(mikataLevel.size-1)) {
            if (mikataLevel[i] < mikataLevel[tmpIndex]) {
                tmpIndex = i
            } else if (mikataLevel[i] == mikataLevel[tmpIndex]) {
                if (mikataCount[i] < mikataCount[tmpIndex]) {
                    tmpIndex = i
                }
            }
        }
        return tmpIndex
    }

    val num = readLineInt()
    var mikata = readLineIntArray().toTypedArray()
    val teki = readLineIntArray().toTypedArray()
    var ans = Int.MIN_VALUE
    for (i in 0..(num-1)) {
//    for (i in 0..2) {
        var mikataCount = Array<Int>(num , {0})
        for (j in 0..(num-1)) {
            val attackIndex = decideMikata(mikata, mikataCount)
            mikata[attackIndex] += teki[(i+j)%num] / 2
            mikataCount[attackIndex]++
        }
        val tmpAns : Int = mikataCount.max() as Int
        if (ans < tmpAns) {
            ans = tmpAns
        }
//        for (inte in mikataCount) {
//            print(inte.toString() + " ")
//        }
//        println()
//        for (inte in mikata) {
//            print(inte.toString() + " ")
//        }
//        println()
    }
    println(ans)
}
0