結果

問題 No.2891 Mint
ユーザー SnowBeenDidingSnowBeenDiding
提出日時 2024-09-13 22:15:57
言語 C++23
(gcc 12.3.0 + boost 1.83.0)
結果
AC  
実行時間 1,093 ms / 2,000 ms
コード長 1,099 bytes
コンパイル時間 5,527 ms
コンパイル使用メモリ 311,548 KB
実行使用メモリ 97,408 KB
最終ジャッジ日時 2024-09-13 22:16:32
合計ジャッジ時間 29,894 ms
ジャッジサーバーID
(参考情報)
judge4 / judge6
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
6,816 KB
testcase_01 AC 2 ms
6,816 KB
testcase_02 AC 3 ms
6,944 KB
testcase_03 AC 2 ms
6,940 KB
testcase_04 AC 776 ms
97,408 KB
testcase_05 AC 2 ms
6,944 KB
testcase_06 AC 1,093 ms
97,280 KB
testcase_07 AC 2 ms
6,940 KB
testcase_08 AC 2 ms
6,940 KB
testcase_09 AC 2 ms
6,944 KB
testcase_10 AC 2 ms
6,940 KB
testcase_11 AC 2 ms
6,940 KB
testcase_12 AC 2 ms
6,944 KB
testcase_13 AC 1 ms
6,944 KB
testcase_14 AC 2 ms
6,944 KB
testcase_15 AC 2 ms
6,944 KB
testcase_16 AC 2 ms
6,944 KB
testcase_17 AC 792 ms
72,448 KB
testcase_18 AC 441 ms
43,904 KB
testcase_19 AC 387 ms
39,424 KB
testcase_20 AC 693 ms
65,152 KB
testcase_21 AC 386 ms
39,424 KB
testcase_22 AC 864 ms
80,256 KB
testcase_23 AC 296 ms
30,592 KB
testcase_24 AC 672 ms
64,128 KB
testcase_25 AC 981 ms
88,064 KB
testcase_26 AC 905 ms
84,480 KB
testcase_27 AC 887 ms
79,616 KB
testcase_28 AC 993 ms
90,880 KB
testcase_29 AC 408 ms
40,960 KB
testcase_30 AC 743 ms
67,840 KB
testcase_31 AC 439 ms
43,648 KB
testcase_32 AC 790 ms
73,344 KB
testcase_33 AC 545 ms
53,376 KB
testcase_34 AC 603 ms
57,856 KB
testcase_35 AC 683 ms
65,024 KB
testcase_36 AC 757 ms
70,144 KB
testcase_37 AC 616 ms
76,160 KB
testcase_38 AC 532 ms
69,504 KB
testcase_39 AC 695 ms
86,784 KB
testcase_40 AC 720 ms
90,240 KB
testcase_41 AC 401 ms
50,688 KB
testcase_42 AC 2 ms
6,944 KB
testcase_43 AC 2 ms
6,940 KB
testcase_44 AC 2 ms
6,940 KB
testcase_45 AC 2 ms
6,940 KB
testcase_46 AC 2 ms
6,944 KB
testcase_47 AC 669 ms
83,968 KB
testcase_48 AC 645 ms
82,304 KB
testcase_49 AC 755 ms
95,872 KB
testcase_50 AC 196 ms
29,312 KB
testcase_51 AC 555 ms
70,912 KB
testcase_52 AC 178 ms
27,648 KB
testcase_53 AC 439 ms
58,112 KB
testcase_54 AC 515 ms
66,048 KB
testcase_55 AC 89 ms
16,640 KB
testcase_56 AC 806 ms
96,640 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <atcoder/all>
#include <bits/stdc++.h>
#define rep(i, a, b) for (ll i = (ll)(a); i < (ll)(b); i++)
using namespace atcoder;
using namespace std;

typedef long long ll;
using mint = modint998244353;

mint greedy(ll n, ll m) {
    mint ans = 0;
    rep(k, 1, n + 1) { ans += m % k; }
    return ans;
}

mint f(ll n, ll m) {
    mint ans = 0;
    set<ll> st;
    for (ll i = 1; i * i <= m; i++) {
        st.insert(i);
        st.insert(m / i);
    }
    for (ll i : st) {
        ll xl = m / (i + 1) + 1;
        ll xr = m / i;
        xr = min(xr, n);
        if (xl <= xr) {
            ans += (mint)i * (xl + xr) * (xr - xl + 1) / 2;
        }
    }
    return ans;
}

mint solve(ll n, ll m) {
    mint ans = (mint)m * n;
    ans -= f(n, m);
    return ans;
}

int main() {
    ll n, m;
    cin >> n >> m;
    cout << solve(n, m).val() << endl;
    // rep(i, 1, 100) rep(j, 1, 100) {
    //     if (solve(i, j).val() != greedy(i, j).val()) {
    //         cout << i << " " << j << " " << solve(i, j).val() << " "
    //              << greedy(i, j).val() << endl;
    //     }
    // }
}
0