結果
問題 | No.854 公平なりんご分配 |
ユーザー |
|
提出日時 | 2019-07-27 03:12:00 |
言語 | Kotlin (2.1.0) |
結果 |
AC
|
実行時間 | 1,233 ms / 3,153 ms |
コード長 | 1,853 bytes |
コンパイル時間 | 15,700 ms |
コンパイル使用メモリ | 443,312 KB |
実行使用メモリ | 75,976 KB |
最終ジャッジ日時 | 2024-11-20 19:11:59 |
合計ジャッジ時間 | 72,431 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 92 |
コンパイルメッセージ
Main.kt:1:10: warning: parameter 'args' is never used fun main(args: Array<String>) { ^ Main.kt:88:16: warning: 'toByte(): Byte' is deprecated. Conversion of Char to Number is deprecated. Use Char.code property instead. while ('0'.toByte() > peek()) next() ^ Main.kt:89:16: warning: 'toByte(): Byte' is deprecated. Conversion of Char to Number is deprecated. Use Char.code property instead. while ('0'.toByte() <= peek()) { ^ Main.kt:90:38: warning: 'toLong(): Long' is deprecated. Conversion of Char to Number is deprecated. Use Char.code property instead. ans = ans * 10 + (peek() - '0'.toLong()) ^
ソースコード
fun main(args: Array<String>) {val table = BooleanArray(2001, {true})val primes: MutableList<Int> = mutableListOf()for (i in 2..2000) {if (table[i]) {primes.add(i)for (j in 2*i..2000 step i) {table[j] = false}}}val rd = Reader()val N = rd.int()val A = IntArray(N)val zero = IntArray(N+1)for (i in 0..N-1) {A[i] = rd.int()zero[i+1] = zero[i] + (if (A[i] == 0) 1 else 0)}val Q = rd.int()val P = IntArray(Q)val L = IntArray(Q)val R = IntArray(Q)for (i in 0..Q-1) {P[i] = rd.int()L[i] = rd.int() - 1R[i] = rd.int()}val ruiseki = IntArray(N+1)val kotae = BooleanArray(Q, {true})for (p in primes) {ruiseki.fill(0)for (i in 0..N-1) {ruiseki[i+1] = ruiseki[i]if (A[i] == 0) continuewhile (A[i] % p == 0) {ruiseki[i+1]++;A[i] /= p}}for (i in 0..Q-1) {if (zero[R[i]] - zero[L[i]] > 0) {P[i] = 1continue}var k = 0while (P[i] % p == 0) {P[i] /= pk++}if (ruiseki[R[i]] - ruiseki[L[i]] < k) kotae[i] = false}}for (i in 0..Q-1) {if (P[i] != 1) kotae[i] = falseprintln(if (kotae[i]) "Yes" else "NO")}}class Reader {var buf: ByteArray = ByteArray(5000000)var k: Int = 0var n: Int = 0init {check()}private fun check() {if (k == n) {n = System.`in`.read(buf)k = 0}}private fun peek(): Byte {return buf[k]}private fun next() {k++check()}fun long(): Long {var ans: Long = 0while ('0'.toByte() > peek()) next()while ('0'.toByte() <= peek()) {ans = ans * 10 + (peek() - '0'.toLong())next()}return ans}fun int(): Int {return long().toInt()}}