結果
問題 | No.885 アマリクエリ |
ユーザー | へのく |
提出日時 | 2019-09-13 23:14:51 |
言語 | Kotlin (1.9.23) |
結果 |
AC
|
実行時間 | 1,395 ms / 2,000 ms |
コード長 | 2,870 bytes |
コンパイル時間 | 17,511 ms |
コンパイル使用メモリ | 440,944 KB |
実行使用メモリ | 81,188 KB |
最終ジャッジ日時 | 2023-09-17 15:18:43 |
合計ジャッジ時間 | 29,724 ms |
ジャッジサーバーID (参考情報) |
judge14 / judge11 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 483 ms
59,088 KB |
testcase_01 | AC | 1,395 ms
81,188 KB |
testcase_02 | AC | 711 ms
66,916 KB |
testcase_03 | AC | 467 ms
58,720 KB |
testcase_04 | AC | 465 ms
58,836 KB |
testcase_05 | AC | 456 ms
58,628 KB |
testcase_06 | AC | 449 ms
58,608 KB |
testcase_07 | AC | 400 ms
63,052 KB |
testcase_08 | AC | 471 ms
59,888 KB |
testcase_09 | AC | 1,276 ms
80,520 KB |
testcase_10 | AC | 292 ms
53,852 KB |
testcase_11 | AC | 293 ms
53,876 KB |
testcase_12 | AC | 288 ms
53,796 KB |
testcase_13 | AC | 347 ms
56,148 KB |
testcase_14 | AC | 345 ms
56,204 KB |
testcase_15 | AC | 347 ms
56,620 KB |
testcase_16 | AC | 315 ms
54,252 KB |
testcase_17 | AC | 319 ms
53,996 KB |
testcase_18 | AC | 331 ms
54,088 KB |
testcase_19 | AC | 311 ms
53,852 KB |
testcase_20 | AC | 307 ms
53,824 KB |
testcase_21 | AC | 317 ms
53,916 KB |
コンパイルメッセージ
Main.kt:3:10: warning: parameter 'args' is never used fun main(args: Array<String>) = IO().exec { ^ Main.kt:64:22: warning: 'toByte(): Byte' is deprecated. Conversion of Char to Number is deprecated. Use Char.code property instead. if (b == '-'.toByte()) { ^ Main.kt:68:23: warning: 'toByte(): Byte' is deprecated. Conversion of Char to Number is deprecated. Use Char.code property instead. if (b !in '0'.toByte()..'9'.toByte()) { ^ Main.kt:68:37: warning: 'toByte(): Byte' is deprecated. Conversion of Char to Number is deprecated. Use Char.code property instead. if (b !in '0'.toByte()..'9'.toByte()) { ^ Main.kt:72:26: warning: 'toByte(): Byte' is deprecated. Conversion of Char to Number is deprecated. Use Char.code property instead. if (b in '0'.toByte()..'9'.toByte()) { ^ Main.kt:72:40: warning: 'toByte(): Byte' is deprecated. Conversion of Char to Number is deprecated. Use Char.code property instead. if (b in '0'.toByte()..'9'.toByte()) { ^ Main.kt:74:30: warning: 'toByte(): Byte' is deprecated. Conversion of Char to Number is deprecated. Use Char.code property instead. n += b - '0'.toByte() ^
ソースコード
import java.util.* fun main(args: Array<String>) = IO().exec { val n = int() val a = LongArray(n){long()} val q = int() val x = LongArray(q){long()} val tmap = TreeMap<Long, Int>() for (p in a) { tmap[p] = (tmap[p] ?: 0) + 1 } var sum = a.sum() for (r in x) { var key = r - 1 while (true) { val k = tmap.higherKey(key) ?: break val v = tmap[k]!! sum -= (k / r) * r * v tmap.remove(k) if (k % r != 0L) tmap[k % r] = (tmap[k % r] ?: 0) + v key = k } println(sum) } } // region template operator fun Int.iterator() = 0.until(this).iterator() class IO { val printable = 33..126 val buffer = ByteArray(1024) var ptr = 0 var buflen = 0 val out = java.io.PrintWriter(System.out) fun hasNextByte(): Boolean = if (ptr < buflen) true else { ptr = 0 buflen = System.`in`.read(buffer) buflen > 0 } fun readByte(): Byte = if (hasNextByte()) buffer[ptr++] else -1 fun hasNext(): Boolean { while (hasNextByte() && buffer[ptr] !in printable) ptr++ return hasNextByte() } fun string(): String { if (!hasNext()) throw java.util.NoSuchElementException() val sb = StringBuilder() var b = readByte() while (b in printable) { sb.appendCodePoint(b.toInt()) b = readByte() } return sb.toString() } fun long(): Long { if (!hasNext()) throw java.util.NoSuchElementException() var n = 0L var minus = false var b = readByte() if (b == '-'.toByte()) { minus = true b = readByte() } if (b !in '0'.toByte()..'9'.toByte()) { throw NumberFormatException() } while (true) { if (b in '0'.toByte()..'9'.toByte()) { n *= 10 n += b - '0'.toByte() } else if (b == (-1).toByte() || b !in printable) { return if (minus) -n else n } else { throw NumberFormatException() } b = readByte() } } fun int(): Int { val nl = long() if (nl !in Integer.MIN_VALUE..Integer.MAX_VALUE) throw NumberFormatException() return nl.toInt() } fun double(): Double = string().toDouble() fun print(obj: Any) = out.print(obj) fun print(i: Int) = out.print(i) fun print(l: Long) = out.print(l) fun println(obj: Any) = out.println(obj) fun println(i: Int) = out.println(i) fun println(l: Long) = out.println(l) inline fun exec(block: IO.() -> Unit) { block() out.flush() } inline fun println(block: IO.() -> Any) { println(block()) out.flush() } } // endregion