結果
問題 |
No.3 ビットすごろく
|
ユーザー |
|
提出日時 | 2025-05-18 20:37:27 |
言語 | Java (openjdk 23) |
結果 |
WA
|
実行時間 | - |
コード長 | 606 bytes |
コンパイル時間 | 3,156 ms |
コンパイル使用メモリ | 80,852 KB |
実行使用メモリ | 54,396 KB |
最終ジャッジ日時 | 2025-05-18 20:37:36 |
合計ジャッジ時間 | 8,610 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 32 WA * 1 |
ソースコード
import java.util.*; class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] p = new int[n]; Queue<Integer> que = new ArrayDeque<>(); que.add(0); Integer a; while((a = que.poll()) != null && p[n-1] == 0){ int b = pop(a+1); if(a + b < n && p[a+b] == 0){ p[a+b] = p[a] + 1; que.add(a+b); } if(a >=b && p[a-b]==0){ p[a-b] = p[a] + 1; que.add(a-b); } } System.out.println(p[n-1] == 0 ? -1 : p[n-1] + 1); } static int pop(int n){ int r = 0; while(n!=0){ r+=n%2; n/=2; } return r; } }