結果
問題 | No.3 ビットすごろく |
ユーザー |
|
提出日時 | 2025-05-18 20:33:13 |
言語 | Java (openjdk 23) |
結果 |
RE
|
実行時間 | - |
コード長 | 597 bytes |
コンパイル時間 | 2,353 ms |
コンパイル使用メモリ | 78,072 KB |
実行使用メモリ | 46,896 KB |
最終ジャッジ日時 | 2025-05-18 20:33:22 |
合計ジャッジ時間 | 7,374 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | RE * 33 |
ソースコード
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(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; } }