結果
| 問題 |
No.158 奇妙なお使い
|
| コンテスト | |
| ユーザー |
バカらっく
|
| 提出日時 | 2019-11-09 06:43:17 |
| 言語 | Kotlin (2.1.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,866 bytes |
| コンパイル時間 | 14,015 ms |
| コンパイル使用メモリ | 448,040 KB |
| 実行使用メモリ | 71,720 KB |
| 最終ジャッジ日時 | 2024-09-15 04:01:16 |
| 合計ジャッジ時間 | 25,573 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 24 RE * 3 |
コンパイルメッセージ
Main.kt:2:10: warning: parameter 'arr' is never used
fun main(arr:Array<String>) {
^
ソースコード
fun main(arr:Array<String>) {
val a = readLine()!!.split(" ").map { it.toInt() }
bRequire = readLine()!!.toInt()
bReturn = readLine()!!.split(" ").map { it.toInt() }.toTypedArray()
cRequire = readLine()!!.toInt()
cReturn = readLine()!!.split(" ").map { it.toInt() }.toTypedArray()
val ans = getAns(a[0], a[1], a[2])
println(ans)
}
var bRequire = 0
var cRequire = 0
var bReturn = arrayOf(0,0,0)
var cReturn = arrayOf(0,0,0)
val dic = mutableMapOf<Int, MutableMap<Int, MutableMap<Int, Int>>>()
fun getAns(rem1000: Int, rem100: Int, rem1: Int):Int {
if(!dic.containsKey(rem1000)) {
dic[rem1000] = mutableMapOf()
}
if(!dic[rem1000]!!.containsKey(rem100)) {
dic[rem1000]!![rem100] = mutableMapOf()
}
dic[rem1000]!![rem100]!![rem1]?.let { return it }
val bResult = doOtsukai(bRequire, bReturn, rem1000, rem100, rem1)
var bRet = 0
if(bResult.isNotEmpty()) {
bRet = getAns(bResult[0], bResult[1], bResult[2]) + 1
}
val cResult = doOtsukai(cRequire, cReturn, rem1000, rem100, rem1)
var cRet = 0
if(cResult.isNotEmpty()) {
cRet = getAns(cResult[0], cResult[1], cResult[2]) + 1
}
val ans = Math.max(bRet, cRet)
dic[rem1000]!![rem100]!![rem1] = ans
return ans
}
fun doOtsukai(require:Int, otusri:Array<Int>, rem1000:Int, rem100:Int, rem1:Int):Array<Int> {
if(require > rem1000 * 1000 + rem100 * 100 + rem1) {
return emptyArray()
}
var remain = require
var r1000 = rem1000
while (remain >= 1000 && r1000 > 0) {
r1000--
remain -= 1000
}
var r100 = rem100
while (remain >= 100 && r100 > 0) {
r100--
remain -= 100
}
if(remain > rem1) {
return emptyArray()
}
val ret = arrayOf(r1000 + otusri[0], r100 + otusri[1], rem1 - remain + otusri[2] )
return ret
}
バカらっく