提出 #71855656


ソースコード 拡げる

#include <bits/stdc++.h>

#include <atcoder/all>

using namespace std;
using namespace atcoder;

#define int long long
#define ALL(x) (x).begin(), (x).end()
#define MAX(x) *max_element(ALL(x))
#define MIN(x) *min_element(ALL(x))

typedef pair<int, int> PI;
typedef pair<int, pair<int, int>> PII;
static const int INF = 1010000000000000017LL;
static const double eps = 1e-12;
static const double pi = 3.14159265358979323846;
static const int dx[4] = {1, -1, 0, 0};
static const int dy[4] = {0, 0, 1, -1};
static const int ddx[8] = {1, -1, 0, 0, 1, 1, -1, -1};
static const int ddy[8] = {0, 0, 1, -1, 1, -1, 1, -1};

template <class T>
inline bool chmin(T& a, T b) {
    if (a > b) {
        a = b;
        return true;
    }
    return false;
}
template <class T>
inline bool chmax(T& a, T b) {
    if (a < b) {
        a = b;
        return true;
    }
    return false;
}

const int mod = 998244353;

int N, M;

signed main() {
    cin >> N >> M;
    vector<int> A(N), B(M);
    for (int i = 0; i < N; ++i) {
        cin >> A[i];
    }
    for (int i = 0; i < M; ++i) {
        cin >> B[i];
    }
    sort(A.begin(), A.end());
    sort(B.begin(), B.end());
    vector<int> S(M + 1, 0);
    for (int i = 0; i < M; ++i) {
        S[i + 1] = S[i] + B[i];
    }
    int ans = 0;
    for (int i = 0; i < N; ++i) {
        auto itr = upper_bound(B.begin(), B.end(), A[i]);
        int idx = itr - B.begin();
        // cout << "idx: " << idx << endl;
        // 左項
        ans -= S[idx] - idx * A[i];
        ans = (ans + mod) % mod;
        // cout << "ans: " << ans << endl;
        // 右項
        ans -= (M - idx) * A[i] - (S[M] - S[idx]);
        ans = (ans + mod) % mod;
        // cout << "ans: " << ans << endl;
    }
    cout << ans << endl;
}

提出情報

提出日時
問題 D - Sum of Differences
ユーザ tsuyosshi
言語 C++23 (GCC 15.2.0)
得点 400
コード長 1826 Byte
結果 AC
実行時間 210 ms
メモリ 10380 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 400 / 400
結果
AC × 2
AC × 32
セット名 テストケース
Sample 00-sample-01.txt, 00-sample-02.txt
All 00-sample-01.txt, 00-sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 01-27.txt, 01-28.txt, 01-29.txt, 01-30.txt
ケース名 結果 実行時間 メモリ
00-sample-01.txt AC 1 ms 3600 KiB
00-sample-02.txt AC 1 ms 3604 KiB
01-01.txt AC 5 ms 3592 KiB
01-02.txt AC 4 ms 3740 KiB
01-03.txt AC 5 ms 3876 KiB
01-04.txt AC 5 ms 3732 KiB
01-05.txt AC 5 ms 3760 KiB
01-06.txt AC 4 ms 3668 KiB
01-07.txt AC 6 ms 3720 KiB
01-08.txt AC 5 ms 3552 KiB
01-09.txt AC 5 ms 3680 KiB
01-10.txt AC 4 ms 3680 KiB
01-11.txt AC 4 ms 3592 KiB
01-12.txt AC 4 ms 3732 KiB
01-13.txt AC 5 ms 3628 KiB
01-14.txt AC 5 ms 3740 KiB
01-15.txt AC 1 ms 3600 KiB
01-16.txt AC 1 ms 3652 KiB
01-17.txt AC 157 ms 9060 KiB
01-18.txt AC 164 ms 8276 KiB
01-19.txt AC 101 ms 8036 KiB
01-20.txt AC 102 ms 5700 KiB
01-21.txt AC 210 ms 10380 KiB
01-22.txt AC 177 ms 10344 KiB
01-23.txt AC 176 ms 10344 KiB
01-24.txt AC 199 ms 10340 KiB
01-25.txt AC 196 ms 10336 KiB
01-26.txt AC 157 ms 10320 KiB
01-27.txt AC 144 ms 8084 KiB
01-28.txt AC 153 ms 8724 KiB
01-29.txt AC 128 ms 8524 KiB
01-30.txt AC 161 ms 9320 KiB