diff --git a/Hydro/bzoj/1257/1257.cpp b/Hydro/bzoj/1257/1257.cpp index 0e03d09a..6c149f92 100644 --- a/Hydro/bzoj/1257/1257.cpp +++ b/Hydro/bzoj/1257/1257.cpp @@ -10,8 +10,9 @@ long long n, k, ans; int main() { cin >> n >> k; ans = n * k; - for (int x = 1; x <= n; x++) { - ans -= floor(1.0 * k / x) * x; + for (int x = 1, gx; x <= n; x = gx + 1) { + gx = k / x ? std::min(k / (k / x), n) : n; + ans -= (k / x) * (x + gx) * (gx - x + 1) / 2; } cout << ans << endl; return 0;