AtCoder Beginner Contest 133 C - Remainder Minimization 2019【Python】
https://atcoder.jp/contests/abc133/tasks/abc133_c
AtCoder ProblemsのRecommendationでDifficulty: 592、Solve Probability:
48%でした。
(i * j) % 2019が0となるi, jがL, Rの範囲にある時は0を出力、それ以外については全探索という方針で解きましたが、
ユーザー解説
https://blog.hamayanhamayan.com/entry/2019/07/08/212920
では場合分けせず全探索して0になった時点でループを抜ける実装になっており勉強になりました。
L, R = map(int, input().split()) ni = L // 2019 nj = R // 2019 if nj - ni > 1: print(0) else: s = set() for i in range(L, R+1): s.add(i % 2019) s = list(s) ans = 2019 for i in range(len(s)): for j in range(len(s)): if i == j: continue ans = min(ans, s[i] * s[j] % 2019) print(ans)