結果
問題 | No.894 二種類のバス |
ユーザー |
![]() |
提出日時 | 2019-09-27 21:48:42 |
言語 | Kotlin (2.1.0) |
結果 |
AC
|
実行時間 | 276 ms / 1,000 ms |
コード長 | 2,814 bytes |
コンパイル時間 | 13,991 ms |
コンパイル使用メモリ | 456,928 KB |
実行使用メモリ | 54,448 KB |
最終ジャッジ日時 | 2024-09-24 22:51:04 |
合計ジャッジ時間 | 20,339 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 17 |
コンパイルメッセージ
Main.kt:3:10: warning: parameter 'args' is never used fun main(args: Array<String>) = IO().exec { ^ Main.kt:57:22: warning: 'toByte(): Byte' is deprecated. Conversion of Char to Number is deprecated. Use Char.code property instead. if (b == '-'.toByte()) { ^ Main.kt:61: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:61: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:65: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:65: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:67:30: warning: 'toByte(): Byte' is deprecated. Conversion of Char to Number is deprecated. Use Char.code property instead. n += b - '0'.toByte() ^
ソースコード
import java.math.BigIntegerfun main(args: Array<String>) = IO().exec {val t = long()val a = long()val b = long()val l = lcm(a, b)println(calc(t.toBigInteger(), a.toBigInteger()) + calc(t.toBigInteger(), b.toBigInteger()) - calc(t.toBigInteger(), l))}fun calc(t: BigInteger, a: BigInteger): BigInteger {return (t - BigInteger.ONE) / a + BigInteger.ONE}fun gcd(a: Long, b: Long): Long = if (b == 0L) a else gcd(b, a % b)fun lcm(a: Long, b: Long): BigInteger = a.toBigInteger() / gcd(a, b).toBigInteger() * b.toBigInteger()// 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