# AtCoder Beginner Contest 110

URL: https://atcoder.jp/contests/abc110 (opens new window)

# A

arr = gets.chomp.split(" ").map(&:to_i)

a,b,c = arr.sort_by{|x| -x}

puts a * 10 + b + c

# B

n,m,x,y = gets.chomp.split(" ").map(&:to_i)
x_arr = gets.chomp.split(" ").map(&:to_i)
y_arr = gets.chomp.split(" ").map(&:to_i)

z = y_arr.min
if x < z && z <= y && x_arr.max < z && z <= y_arr.min
  puts "No War"
else
  puts "War"
end

# C

s = gets.chomp
t = gets.chomp

# s = "bc", t = "aa" のパターンが無理
# つまりtで同じ文字があらわれるindexについて, sも同じ文字で構成されている必要がある
# (これはs, tを逆にしても同じことが言える)

# 同じ文字が表れるindexを配列で持っておく
hash_s = {}
hash_t = {}
(0..s.length-1).each do |i|
  hash_s[s[i]] ||= [] 
  hash_s[s[i]] << i
  hash_t[t[i]] ||= [] 
  hash_t[t[i]] << i
end

hash_s.each do |k, v|
  # sで同じ文字が表れるindexについて, tが全部同じ文字で構成されていなければNo
  if v.map {|i| t[i] }.uniq.length > 1
    puts "No"
    exit
  end
end

hash_t.each do |k, v|
  if v.map {|i| s[i] }.uniq.length > 1
    puts "No"
    exit
  end
end

puts "Yes"
Last Updated: 2020/08/15 20:23