結果
問題 | No.3 ビットすごろく |
ユーザー |
|
提出日時 | 2017-06-12 01:07:05 |
言語 | Kotlin (2.1.0) |
結果 |
AC
|
実行時間 | 378 ms / 5,000 ms |
コード長 | 988 bytes |
コンパイル時間 | 14,101 ms |
コンパイル使用メモリ | 448,500 KB |
実行使用メモリ | 52,628 KB |
最終ジャッジ日時 | 2024-07-01 08:45:41 |
合計ジャッジ時間 | 26,794 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 33 |
コンパイルメッセージ
Main.kt:8:1: warning: expected performance impact from inlining is insignificant. Inlining works best for functions with parameters of functional types inline fun adjlist(i : Int) : Array<Int> { ^ Main.kt:12:10: warning: parameter 'args' is never used fun main(args: Array<String>) { ^ Main.kt:20:9: warning: variable 'lst' is never used val lst = Array(N, { i -> i }) ^ Main.kt:23:9: warning: variable 'pi' is never used var pi = Array(N, { nil }) ^
ソースコード
/** * Created by n on 2017/06/11. */ import java.util.* inline fun adjlist(i : Int) : Array<Int> { return arrayOf((i + 1) - Integer.bitCount(i + 1) - 1, (i + 1) + Integer.bitCount(i + 1) - 1) } fun main(args: Array<String>) { val cin = Scanner(System.`in`) val N = cin.nextInt() val inf = Integer.MAX_VALUE / 3 val nil = Integer.MIN_VALUE / 3 var q: Queue<Int> = ArrayDeque() val lst = Array(N, { i -> i }) var d = Array(N, { inf }) var pi = Array(N, { nil }) var visited = BooleanArray(N) val s = 0 d[s] = 0 visited[s] = true q.add(0) while (q.isNotEmpty()) { val u = q.remove() val adj = adjlist(u) for (v in adj) { if (v < 0 || v >= N || visited[v]) { continue } visited[v] = true d[v] = d[u] + 1 q.add(v) } } val ans = if (d[N - 1] == inf) { -1 } else { d[N - 1] + 1} println("${ans}") }