結果
| 問題 |
No.598 オーバーフローファンタジー
|
| コンテスト | |
| ユーザー |
💕💖💞
|
| 提出日時 | 2018-03-08 10:35:16 |
| 言語 | Kotlin (2.1.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,126 bytes |
| コンパイル時間 | 12,579 ms |
| コンパイル使用メモリ | 433,988 KB |
| 実行使用メモリ | 147,096 KB |
| 最終ジャッジ日時 | 2024-11-20 14:29:09 |
| 合計ジャッジ時間 | 24,978 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 19 WA * 8 TLE * 1 |
コンパイルメッセージ
Main.kt:1:10: warning: parameter 'args' is never used
fun main(args:Array<String>) {
^
Main.kt:24:14: warning: variable 'cure' initializer is redundant
var cure = 0
^
Main.kt:31:13: warning: name shadowed: sum
val sum = xb + bb*scan
^
Main.kt:32:13: warning: name shadowed: sumstr
val sumstr = java.lang.Integer.toBinaryString(sum).padStart(n, '0')
^
ソースコード
fun main(args:Array<String>) {
val n = readLine()!!.toInt()
val x = readLine()!!.toInt()
val a = readLine()!!.toInt()
val b = readLine()!!.toInt()
// 通常攻撃での減産
val normal = Math.ceil(x.toDouble() / a).toInt()
// 補数
val xb = java.lang.Integer.toBinaryString(x).toInt(2)
val bb = java.lang.Integer.toBinaryString(b).toInt(2)
//val searchRange = (1..normal+1).toList()
var size = normal
var mid = size/2
var cure = 0
master@while(true) {
val sum = xb + bb*mid
val sumstr = java.lang.Integer.toBinaryString(sum).padStart(n, '0')
if( sumstr[0] == '1' ) {
// start under search
for( scan in (mid downTo 0) ) {
val sum = xb + bb*scan
val sumstr = java.lang.Integer.toBinaryString(sum).padStart(n, '0')
cure = scan
if( sumstr[0] == '1' )
break@master
}
} else {
mid = (mid + size+1)/2
}
if(mid == size) {
// 探索失敗
cure = normal + 1
break@master
}
}
//println(normal)
//println(cure)
val output = listOf(normal, cure).min()
println(output)
}
💕💖💞