結果

問題 No.78 クジ付きアイスバー
ユーザー javyjavy
提出日時 2015-11-28 09:43:27
言語 Kotlin
(1.9.23)
結果
AC  
実行時間 302 ms / 5,000 ms
コード長 1,992 bytes
コンパイル時間 12,025 ms
コンパイル使用メモリ 442,472 KB
実行使用メモリ 57,028 KB
最終ジャッジ日時 2024-11-20 06:17:42
合計ジャッジ時間 25,288 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 279 ms
56,864 KB
testcase_01 AC 278 ms
56,728 KB
testcase_02 AC 285 ms
56,916 KB
testcase_03 AC 281 ms
56,808 KB
testcase_04 AC 287 ms
56,852 KB
testcase_05 AC 291 ms
56,788 KB
testcase_06 AC 292 ms
56,936 KB
testcase_07 AC 291 ms
56,716 KB
testcase_08 AC 283 ms
56,872 KB
testcase_09 AC 281 ms
56,852 KB
testcase_10 AC 285 ms
56,848 KB
testcase_11 AC 277 ms
57,016 KB
testcase_12 AC 281 ms
57,008 KB
testcase_13 AC 285 ms
56,992 KB
testcase_14 AC 278 ms
56,836 KB
testcase_15 AC 282 ms
56,972 KB
testcase_16 AC 284 ms
57,000 KB
testcase_17 AC 281 ms
56,748 KB
testcase_18 AC 284 ms
56,792 KB
testcase_19 AC 285 ms
56,940 KB
testcase_20 AC 286 ms
56,764 KB
testcase_21 AC 286 ms
57,008 KB
testcase_22 AC 289 ms
57,028 KB
testcase_23 AC 284 ms
56,856 KB
testcase_24 AC 302 ms
56,836 KB
testcase_25 AC 282 ms
57,028 KB
testcase_26 AC 281 ms
56,904 KB
testcase_27 AC 281 ms
56,996 KB
testcase_28 AC 288 ms
56,864 KB
testcase_29 AC 288 ms
56,712 KB
testcase_30 AC 292 ms
56,876 KB
testcase_31 AC 288 ms
56,856 KB
testcase_32 AC 284 ms
56,924 KB
testcase_33 AC 283 ms
56,956 KB
testcase_34 AC 279 ms
56,916 KB
testcase_35 AC 289 ms
57,004 KB
testcase_36 AC 285 ms
56,836 KB
testcase_37 AC 286 ms
56,920 KB
testcase_38 AC 284 ms
56,956 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
Main.kt:6:10: warning: parameter 'args' is never used
fun main(args: Array<String>) {
         ^

ソースコード

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 readLineDouble() : Double {
        val str = readLine() as String
        return str.toDouble()
    }
    val input = readLineIntArray()
    val num = input[0]
    val iceArray = (readLine() as String).toCharArray().map { it.toString().toInt() }
    var sum = 0
    for (item in iceArray) {
        sum += item
    }
    sum -= num
    var needIce = input[1]
    var buyIce = 0
    var moreIce = 0
    for (i in 0..Int.MAX_VALUE) {
        if (moreIce == 0) {
            buyIce++
        } else {
            moreIce--
        }
        moreIce += iceArray[i%num]
        needIce--
        if (needIce <= 0)
            break
        if (i >= num) {
            if (sum >= 0) {
                break
            } else {
                if (((needIce / num) - 2) > 0) {
//                    println(((needIce / num) - 2))
                    buyIce += ((needIce / num) - 2) * (-sum)
                    needIce -= ((needIce / num) - 2) * num
                }
            }
        }
//        println("\t" + needIce)
        if (needIce <= 0)
            break
    }
    println(buyIce)
//    println(sum)
}
0