AtCoder RubyでA問題ノック

[AtCoder](https://atcoder.jp/)のABCのA問題のみRubyでひたすら解いていく。

# ポリシー

- 短く
- 可読性高く
- 無駄なことをしない


# 問題と回答

## [001 積雪深差](https://atcoder.jp/contests/abc001/tasks/abc001_1)
```rb
puts readlines.map(&:to_i).reduce(:-)
```

## [002 正直者](https://atcoder.jp/contests/abc002/tasks/abc002_1)
```rb
puts gets.split.map(&:to_i).max
```

## [003 AtCoder社の給料](https://atcoder.jp/contests/abc003/tasks/abc003_1)
```rb
puts (gets.to_i + 1) * 5000
```

## [004 流行](https://atcoder.jp/contests/abc004/tasks/abc004_1)
```rb
puts gets.to_i * 2
```

## [005 おいしいたこ焼きの作り方](https://atcoder.jp/contests/abc005/tasks/abc005_1)
```rb
x, y = gets.split.map(&:to_i)
puts y / x
```

## [006 世界のFizzBuzz](https://atcoder.jp/contests/abc006/tasks/abc006_1)
```rb
puts gets.to_i % 3 == 0 ? :YES : :NO
```

## [007 植木算](https://atcoder.jp/contests/abc007/tasks/abc007_1)
```rb
puts gets.to_i - 1
```

## [008 アルバム](https://atcoder.jp/contests/abc008/tasks/abc008_1)
```rb
s, t = gets.split.map(&:to_i)
puts t - s + 1
```

## [009 引越し作業](https://atcoder.jp/contests/abc009/tasks/abc009_1)
```rb
puts (gets.to_i / 2.0).ceil
```

## [010 ハンドルネーム](https://atcoder.jp/contests/abc010/tasks/abc010_1)
```rb
puts gets.chomp + "pp"
```

## [011 来月は何月？](https://atcoder.jp/contests/abc011/tasks/abc011_1)
```rb
puts gets.to_i % 12 + 1
```

## [012 スワップ](https://atcoder.jp/contests/abc012/tasks/abc012_1)
```rb
puts gets.split.reverse.join(" ")
```

## [013 A](https://atcoder.jp/contests/abc013/tasks/abc013_1)
```rb
puts "ABCDE".index(gets.chomp) + 1
```

## [014 けんしょう先生のお菓子配り](https://atcoder.jp/contests/abc014/tasks/abc014_1)
```rb
a, b = readlines.map(&:to_i)
puts (a / b.to_f).ceil * b - a
```

## [015 高橋くんの研修](https://atcoder.jp/contests/abc015/tasks/abc015_1)
```rb
puts readlines.max_by(&:length)
```

## [016 12月6日](https://atcoder.jp/contests/abc016/tasks/abc016_1)
```rb
m, d = gets.split.map(&:to_i)
puts m % d == 0 ? :YES : :NO
```

## [017 プロコン](https://atcoder.jp/contests/abc017/tasks/abc017_1)
```rb
puts readlines.map { |l| l.split.map(&:to_i).inject(:*) }.inject(:+) / 10
```

## [018 豆まき](https://atcoder.jp/contests/abc018/tasks/abc018_1)
```rb
ss = readlines.map(&:to_i)
puts ss.map { |s| ss.sort.reverse.index(s) + 1 }
```

## [019 高橋くんと年齢](https://atcoder.jp/contests/abc019/tasks/abc019_1)
```rb
puts gets.split.map(&:to_i).sort[1]
```

## [020 クイズ](https://atcoder.jp/contests/abc020/tasks/abc020_a)
```rb
puts %w(ABC chokudai)[gets.to_i - 1]
```

## [021 足し算](https://atcoder.jp/contests/abc021/tasks/abc021_a)
```rb
a = []
[8, 4, 2, 1].inject(gets.to_i) do |r, n|
  (r / n).times do
    a << n
    r -= n
  end
  r
end
puts a.length, a
```
```rb
n = gets.to_i
puts n, [1] * n
```

## [022 Best Body](https://atcoder.jp/contests/abc022/tasks/abc022_a)
```rb
_, s, t = gets.split.map(&:to_i)
w = gets.to_i
as = readlines.map(&:to_i)

cnt = as.count do |a|
  w += a
  s <= w && w <= t
end
puts cnt
```
`as.count do ~ end` は直接 `puts` できなかった

## [023 加算王](https://atcoder.jp/contests/abc023/tasks/abc023_a)
```rb
x = gets.to_i
puts x / 10 + x % 10
```

## [024 動物園](https://atcoder.jp/contests/abc024/tasks/abc024_a)
```rb
a, b, c, k = gets.split.map(&:to_i)
s, t = gets.split.map(&:to_i)

puts a * s + b * t - (s + t < k ? 0 : c * (s + t))
```

## [025 25個の文字列](https://atcoder.jp/contests/abc025/tasks/abc025_a)
```rb
s = gets.chomp
n = gets.to_i

puts s[(n - 1) / 5] + s[n % 5 - 1]
```

## [026 掛け算の最大値](https://atcoder.jp/contests/abc026/tasks/abc026_a)
```rb
puts (gets.to_i / 2) ** 2
```

## [027 長方形](https://atcoder.jp/contests/abc027/tasks/abc027_a)
```rb
ls = gets.split.map(&:to_i)
puts (ls - [ls.sort[1]])[0] || ls[0]
```

## [028 テスト評価](https://atcoder.jp/contests/abc028/tasks/abc028_a)
```rb
puts [[:Bad] * 60, [:Good] * 30, [:Great] * 10, :Perfect].flatten[gets.to_i]
```

## [029 複数形](https://atcoder.jp/contests/abc029/tasks/abc029_a)
```rb
puts gets.chomp + "s"
```

## [030 勝率計算](https://atcoder.jp/contests/abc030/tasks/abc030_a)
```rb
a, b, c, d = gets.split.map(&:to_f)
puts [:DRAW, :TAKAHASHI, :AOKI][b / a <=> d / c]
```

## [031 ゲーム](https://atcoder.jp/contests/abc031/tasks/abc031_a)
```rb
a, d = gets.split.map(&:to_i).sort
puts (a + 1) * d
```

## [032 高橋君と青木君の好きな数](https://atcoder.jp/contests/abc032/tasks/abc032_a)
```rb
a, b, n = readlines.map(&:to_i)

l = a.lcm(b)
r = l
while r < n
  r += l
end
puts r
```
[最小公倍数のメソッド](https://docs.ruby-lang.org/ja/latest/method/Integer/i/lcm.html)　初耳学

## [033 暗証番号](https://atcoder.jp/contests/abc033/tasks/abc033_a)
```rb
puts gets.chomp.chars.uniq.length == 1 ? :SAME : :DIFFERENT
```

## [034 テスト](https://atcoder.jp/contests/abc034/tasks/abc034_a)
```rb
x, y = gets.split.map(&:to_i)
puts x < y ? :Better : :Worse
```

## [035 テレビ](https://atcoder.jp/contests/abc035/tasks/abc035_a)
```rb
w, h = gets.split.map(&:to_f)
puts w / h == 4 / 3.0 ? "4:3" : "16:9"
```

## [036 お茶](https://atcoder.jp/contests/abc036/tasks/abc036_a)
```rb
a, b = gets.split.map(&:to_f)
puts (b / a).ceil
```

## [037 饅頭](https://atcoder.jp/contests/abc037/tasks/abc037_a)
```rb
a, b, c = gets.split.map(&:to_i)
puts c / [a, b].min
```

## [038 お茶](https://atcoder.jp/contests/abc038/tasks/abc038_a)
```rb
puts gets.chomp[-1] == "T" ? :YES : :NO
```

## [039 高橋直体](https://atcoder.jp/contests/abc039/tasks/abc039_a)
```rb
a, b, c = gets.split.map(&:to_i)
puts (a * b + b * c + c * a) * 2
```

## [040 赤赤赤赤青](https://atcoder.jp/contests/abc040/tasks/abc040_a)
```rb
n, x = gets.split.map(&:to_i)
puts [n - x, x - 1].min
```

## [041 添字](https://atcoder.jp/contests/abc041/tasks/abc041_a)
```rb
s, i = readlines
puts s[i.to_i - 1]
```

## [042 和風いろはちゃんイージー / Iroha and Haiku (ABC Edition)](https://atcoder.jp/contests/abc042/tasks/abc042_a)
```rb
puts gets.split.map(&:to_i).sort == [5,5,7] ? :YES : :NO
```

## [043 キャンディーとN人の子供イージー / Children and Candies (ABC Edit)](https://atcoder.jp/contests/abc043/tasks/abc043_a)
```rb
puts (1..gets.to_i).inject(:+)
```

## [044 高橋君とホテルイージー / Tak and Hotels (ABC Edit)](https://atcoder.jp/contests/abc044/tasks/abc044_a)
```rb
n, k, x, y = readlines.map(&:to_i)
puts x * n - (x - y) * [n - k, 0].max
```

## [045 台形 / Trapezoids](https://atcoder.jp/contests/abc045/tasks/abc045_a)
```rb
a, b, h = readlines.map(&:to_i)
puts (a + b) * h / 2
```

## [046 AtCoDeerくんとペンキ / AtCoDeer and Paint Cans](https://atcoder.jp/contests/abc046/tasks/abc046_a)
```rb
puts gets.chomp.split.uniq.size
```

## [047 キャンディーと2人の子供 / Fighting over Candies](https://atcoder.jp/contests/abc047/tasks/abc047_a)
```rb
a, b, c = gets.split.map(&:to_i).sort
puts a + b == c ? :Yes : :No
```

## [048 AtCoder *** Contest](https://atcoder.jp/contests/abc048/tasks/abc048_a)
```rb
puts gets.split.map { |s| s[0] }.join
```

## [049 居合を終え、青い絵を覆う / UOIAUAI](https://atcoder.jp/contests/abc049/tasks/abc049_a)
```rb
puts "aiueo".include?(gets.chomp) ? :vowel : :consonant
```

## [050 Addition and Subtraction Easy](https://atcoder.jp/contests/abc050/tasks/abc050_a)
```rb
puts eval(gets)
```

# 所感

途中から短さ重視になってきている感も否めない、気をつけねば
51~はまた今度