結果
問題 | No.885 アマリクエリ |
ユーザー |
![]() |
提出日時 | 2019-09-13 23:14:51 |
言語 | Kotlin (2.1.0) |
結果 |
AC
|
実行時間 | 1,190 ms / 2,000 ms |
コード長 | 2,870 bytes |
コンパイル時間 | 14,404 ms |
コンパイル使用メモリ | 463,464 KB |
実行使用メモリ | 100,548 KB |
最終ジャッジ日時 | 2024-07-04 10:25:21 |
合計ジャッジ時間 | 25,524 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 |
コンパイルメッセージ
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 - 1while (true) {val k = tmap.higherKey(key) ?: breakval v = tmap[k]!!sum -= (k / r) * r * vtmap.remove(k)if (k % r != 0L) tmap[k % r] = (tmap[k % r] ?: 0) + vkey = k}println(sum)}}// region templateoperator fun Int.iterator() = 0.until(this).iterator()class IO {val printable = 33..126val buffer = ByteArray(1024)var ptr = 0var buflen = 0val out = java.io.PrintWriter(System.out)fun hasNextByte(): Boolean = if (ptr < buflen) true else {ptr = 0buflen = System.`in`.read(buffer)buflen > 0}fun readByte(): Byte = if (hasNextByte()) buffer[ptr++] else -1fun 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 = 0Lvar minus = falsevar b = readByte()if (b == '-'.toByte()) {minus = trueb = readByte()}if (b !in '0'.toByte()..'9'.toByte()) {throw NumberFormatException()}while (true) {if (b in '0'.toByte()..'9'.toByte()) {n *= 10n += 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