結果

問題 No.24 数当てゲーム
ユーザー naotest2naotest2
提出日時 2017-05-26 17:46:14
言語 Ruby
(3.3.0)
結果
AC  
実行時間 86 ms / 5,000 ms
コード長 1,505 bytes
コンパイル時間 61 ms
コンパイル使用メモリ 11,992 KB
実行使用メモリ 16,148 KB
最終ジャッジ日時 2023-10-20 00:14:34
合計ジャッジ時間 2,050 ms
ジャッジサーバーID
(参考情報)
judge13 / judge11
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 83 ms
16,148 KB
testcase_01 AC 82 ms
16,148 KB
testcase_02 AC 82 ms
16,148 KB
testcase_03 AC 82 ms
16,144 KB
testcase_04 AC 83 ms
16,148 KB
testcase_05 AC 83 ms
16,148 KB
testcase_06 AC 85 ms
16,148 KB
testcase_07 AC 86 ms
16,148 KB
testcase_08 AC 85 ms
16,148 KB
testcase_09 AC 84 ms
16,148 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

N=gets.chomp.to_i
G=[]
for num in 1..N
  (a,b,c,d,r) = gets.chomp.split
  a = a.to_i
  b = b.to_i
  c = c.to_i
  d = d.to_i
  G[num-1] = []
  G[num-1][0] = a
  G[num-1][1] = b
  G[num-1][2] = c
  G[num-1][3] = d
  G[num-1][4] = r
end

guess_have = {}
guess_not = {}

is_first = true
for num in 1..N
  if G[num-1][4] == 'NO'
    for i in 0..3
      guess_not[G[num-1][i]] = 1
    end
  end

  if G[num-1][4] == 'YES'
    for i in 0..3
      str = G[num-1][i]
      if is_first
        guess_have[str] = true
      else
        if not guess_have.key?(str)
          guess_have.delete(str)
        end

        # found = false
        # guess_have.each_pair do |x,y|
        #   if str == x
        #     found = true
        #   end
        # end

        # if not found
        #   guess_have.delete(str)
        # end
      end
    end

    guess_have.each_pair do |x, y|
      found = false
      for i in 0..3
        if G[num-1][i] == x
          found = true
        end
      end
      if not found
        # puts 'guess' + x.to_s
        guess_have.delete(x)
      end
    end
    is_first = false
  end
end

def guess(gh, gn)
  # puts gn.length
  gh.each_pair do |x, v|
    # puts x
  end
  # puts gh.length
  if gn.length == 9
    ret = ""
    for n in 0..9
      if not gn.key?(n)
        ret = n
      end
    end
    return ret
  end

  gh.each_pair do |x, y|
    if gn.key?(x)
      gh.delete(x)
    end
  end

  gh.each_pair do |x, y|
    return x
  end
end
puts guess(guess_have, guess_not)
0