結果

問題 No.3 ビットすごろく
コンテスト
ユーザー kenji_shioya
提出日時 2016-05-24 05:20:53
言語 Java
(openjdk 27 + ACL)
コンパイル:
javac -J-Duser.language=en -encoding UTF8 -cp /opt/aclib/ac_library.jar _filename_
実行:
java -ea -Xmx700m -Xss256M -DONLINE_JUDGE=true -cp .:/opt/aclib/ac_library.jar _class_
結果
WA  
実行時間 -
コード長 872 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 2,556 ms
コンパイル使用メモリ 86,720 KB
実行使用メモリ 44,732 KB
最終ジャッジ日時 2026-09-11 09:52:33
合計ジャッジ時間 7,201 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge1_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 18 WA * 15
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import java.util.Scanner;
import java.util.ArrayList;

public class Exercises16{
  public static void main (String[] args){

    Scanner sc = new Scanner(System.in);

    int goal = sc.nextInt();

    int carol = 1;

    int bitCount = 0;

    int count = 1;

    ArrayList<Integer> blocks = new ArrayList<Integer>();

    blocks.add(carol);

    while (carol != goal){
      bitCount = 0;
      int carolPresent = carol;

      while (carolPresent != 0){
        if (carolPresent % 2 == 1){
          bitCount++;
        }

        carolPresent /= 2;
      }

      if (carol + bitCount > goal){
        carol -= bitCount;
      }else{
        carol += bitCount;
      }

      if (blocks.indexOf(carol) != -1){
        System.out.println(-1);
        return;
      }else{
        blocks.add(carol);
      }

      count += 1;
    }

    System.out.println(count);
  }
}
0