def odai_11_911(h, words)
w = (words.map do |e|
h[e]
end).compact
if w == []
# 新規
vmax = h.values.compact.uniq
vnext = vmax == [] ? 0 : vmax.max + 1
words.map do |e|
h[e] = vnext
end
else
# 既存
vmin = w.min
vmax = w.max
words.map do |e|
h[e] = w.min
end
h.map do |k, v|
h[k] = vmin if v == vmax
end
end
h
end
h = {}
while w = gets
w = w.chomp
words = w.split(' ')
h = odai_11_911(h, words)
end
h.values.uniq.map do |n|
p (h.map do |k, v|
v == n ? k : nil
end).compact
end# your code goes here
ZGVmIG9kYWlfMTFfOTExKGgsIHdvcmRzKQogIHcgPSAod29yZHMubWFwIGRvIHxlfAogICAgICAgICBoW2VdCiAgICAgICBlbmQpLmNvbXBhY3QKCiAgaWYgdyA9PSBbXQogICAgIyDmlrDopo8KICAgIHZtYXggPSBoLnZhbHVlcy5jb21wYWN0LnVuaXEKICAgIHZuZXh0ID0gdm1heCA9PSBbXSA/IDAgOiB2bWF4Lm1heCArIDEKICAgIHdvcmRzLm1hcCBkbyB8ZXwKICAgICAgaFtlXSA9IHZuZXh0CiAgICBlbmQKICBlbHNlCiAgICAjIOaXouWtmAogICAgdm1pbiA9IHcubWluCiAgICB2bWF4ID0gdy5tYXgKICAgIHdvcmRzLm1hcCBkbyB8ZXwKICAgICAgaFtlXSA9IHcubWluCiAgICBlbmQKICAgIGgubWFwIGRvIHxrLCB2fAogICAgICBoW2tdID0gdm1pbiBpZiB2ID09IHZtYXgKICAgIGVuZAogIGVuZAogIGgKZW5kCgpoID0ge30Kd2hpbGUgdyA9IGdldHMKICB3ID0gdy5jaG9tcAogIHdvcmRzID0gdy5zcGxpdCgnICcpCiAgaCA9IG9kYWlfMTFfOTExKGgsIHdvcmRzKQplbmQKCmgudmFsdWVzLnVuaXEubWFwIGRvIHxufAogIHAgKGgubWFwIGRvIHxrLCB2fAogICAgICAgdiA9PSBuID8gayA6IG5pbAogICAgIGVuZCkuY29tcGFjdAplbmQjIHlvdXIgY29kZSBnb2VzIGhlcmU=
["goose", "pigeon", "duck", "dove", "lark"]
["cat", "dog", "horse", "rhino"]
["eel", "goldfish", "cod", "squid"]