AtCoder BC103 C: Modulo Summation
問題
https://beta.atcoder.jp/contests/abc103/tasks/abc103_c
解法
m mod ai が最大になるのは、mがaiの倍数-1の時で、余りはai-1になる。
よって、mがa1,a2,,,anの最小公倍数-1の時にf(m)は最大になる。
最大値を求めるだけなら最小公倍数自体は求める必要は無く、ai-1の総和を求めれば良い。
(最初、mを求める問題かと思い、最小公倍数を求めるコードを書いてしまって時間ロス。。。)
実装
n = gets.chomp.to_i a = gets.chomp.split.map(&:to_i) ans = 0 a.each do |v| ans += v - 1 end puts ans