[AtCoder] ABC 133 C – Remainder Minimization 2019
問題
方針
区間 \( [L, R]\) を全探索する必要はなく、\( [L, \min(R, L + 2019) ]\) の範囲を調べればよいです。これは、
\[ f(x) = x \bmod 2019\]
という関数を考えると、\( 0 \leq f(x) \leq 2018 \ (L \leq x \leq L + 2019)\) となるからです。
コード
#include <bits/stdc++.h> using namespace std; typedef long long ll; int main() { ll L, R; cin >> L >> R; ll v = 2019; ll m = L + min(R - L, 2019ll); for (ll i = L; i <= m - 1; i++) { for (ll j = i + 1; j <= m; j++) { ll t = (i % 2019) * (j % 2019); t %= 2019; v = min(t, v); } } cout << v << "\n"; return 0; }
ディスカッション
コメント一覧
まだ、コメントがありません