AtCoderの茶diffの問題について
AtCoderの問題
Math
1i ≡ a, j ≡ b => i*j ≡ a*b (mod2019)
この性質に基づいて、このようなコードを提出して、不正解でした。
Ruby
1diff = R - L 2if diff < 2019 3 n = diff + 1 4else 5 puts 0 6 exit 7end 8 9a = n.times.map {|i| (L + i) % 2019}.sort 10puts (a[0] * a[1]) % 2019
配列aでは、(L <= i <= R)においての2019で割った余りを集めました。
diffが2019以上のとき、配列aに0が必ず含まれるので、ijの最小値は0になります。
**diffが2019より小さいとき、aの最小2数の積がijの最小値になるはずです。** ←ここが怪しい。。。
公式の解説では、この方法とは異なる方法を解説しており、その方法ではACできました。
しかし、僕の解答がなぜ不正解なのかわかりません。そもそも上の性質が間違っているのでしょうか?
ご回答よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。