結果

問題 No.24 数当てゲーム
ユーザー mii288mii288
提出日時 2014-11-24 19:36:41
言語 JavaScript
(node v21.7.1)
結果
AC  
実行時間 66 ms / 5,000 ms
コード長 1,047 bytes
コンパイル時間 63 ms
コンパイル使用メモリ 6,688 KB
実行使用メモリ 39,424 KB
最終ジャッジ日時 2024-10-12 23:32:47
合計ジャッジ時間 1,313 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 61 ms
39,040 KB
testcase_01 AC 66 ms
39,296 KB
testcase_02 AC 60 ms
39,040 KB
testcase_03 AC 64 ms
39,424 KB
testcase_04 AC 58 ms
38,912 KB
testcase_05 AC 59 ms
39,168 KB
testcase_06 AC 60 ms
39,168 KB
testcase_07 AC 60 ms
39,296 KB
testcase_08 AC 61 ms
39,168 KB
testcase_09 AC 61 ms
39,168 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

// http://yukicoder.me/submissions/3556
function Main(input) {
  var inputArr = input.split('\n'),
      reply,
      i, j, turn_num,
      num = turn = 0,
      answer = mask = ~0; // ビット反転

  turn_num = inputArr[0];

  for(i = 0; i < turn_num; i++) {
    turn = 0;

    for(j = 0; j < 4; j++) {
      num = inputArr[(i+1)].split(' ')[j];
      num = 1 << num; // 1をnumだけ左にシフト

      turn |= num;
    }
    reply = inputArr[(i+1)].split(' ')[4];
    answer &= (reply == "NO") ? ~turn : turn;
  }
  // turnのビットを反転~させると答えに関係ない
  // 上位ビットが全て1になる。そのためマスクで消す。
  mask <<= 10;
  answer ^= mask; // answerとmaskで異なるビットだけを残す

  for(i=0; i < 10; i++) {
    // 最下位ビットが1の時iが答え
    if (answer & 1==1)  break;
    else answer >>= 1; // 1ビット右にシフト
  }
  console.log(i);
}
// Don't edit this line!
Main(require("fs").readFileSync("/dev/stdin", "utf8"));
0