結果

問題 No.24 数当てゲーム
ユーザー mii288mii288
提出日時 2014-11-24 19:36:41
言語 JavaScript
(node v21.7.1)
結果
AC  
実行時間 67 ms / 5,000 ms
コード長 1,047 bytes
コンパイル時間 114 ms
コンパイル使用メモリ 5,120 KB
実行使用メモリ 39,040 KB
最終ジャッジ日時 2024-04-21 01:12:55
合計ジャッジ時間 1,385 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 64 ms
39,040 KB
testcase_01 AC 67 ms
39,040 KB
testcase_02 AC 63 ms
39,040 KB
testcase_03 AC 62 ms
38,912 KB
testcase_04 AC 61 ms
38,784 KB
testcase_05 AC 66 ms
39,040 KB
testcase_06 AC 66 ms
38,784 KB
testcase_07 AC 65 ms
39,040 KB
testcase_08 AC 66 ms
38,784 KB
testcase_09 AC 66 ms
38,912 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