結果

問題 No.9 モンスターのレベル上げ
ユーザー javy
提出日時 2015-11-28 02:36:20
言語 Kotlin
(2.1.0)
結果
TLE  
実行時間 -
コード長 2,162 bytes
コンパイル時間 13,133 ms
コンパイル使用メモリ 438,896 KB
実行使用メモリ 163,888 KB
最終ジャッジ日時 2024-11-20 04:50:12
合計ジャッジ時間 64,739 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 3 WA * 12 TLE * 5
権限があれば一括ダウンロードができます
コンパイルメッセージ
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