結果

問題 No.3 ビットすごろく
ユーザー m
提出日時 2025-05-18 20:32:37
言語 Java
(openjdk 23)
結果
RE  
実行時間 -
コード長 593 bytes
コンパイル時間 3,083 ms
コンパイル使用メモリ 78,012 KB
実行使用メモリ 46,576 KB
最終ジャッジ日時 2025-05-18 20:32:46
合計ジャッジ時間 7,923 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other RE * 33
権限があれば一括ダウンロードができます

ソースコード

diff #

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]);
	}
	static int pop(int n){
		int r = 0;
		while(n!=0){
			r+=n%2;
			n/=2;
		}
		return r;
	}
}
0