提出 #71859313
ソースコード 拡げる
#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>
#include <climits>
#include <stack>
#include <set>
#include <unordered_map>
#include <string>
#include <cmath>
using namespace std;
using ll = unsigned long long;
int MOD = 998244353;
int search(vector<ll>& b, ll v) {
int left = 0;
int right = b.size()-1;
int ans = -1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (b[mid] >= v) {
ans = mid;
right = mid - 1;
}
else {
left = mid + 1;
}
}
return ans;
}
void solve() {
int n, m;
cin >> n >> m;
vector<ll> a(n);
vector<ll> b(m);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
for (int i = 0; i < m; i++)cin >> b[i];
sort(b.begin(), b.end());
vector<ll> sum(m);
sum[0] = b[0];
for (int i = 1; i < m; i++)sum[i] = sum[i - 1] + b[i];
ll ans = 0;
for (int i = 0; i < n; i++) {
int pos = search(b, a[i]);
if (pos != -1) {
ans += pos == 0 ? 0 : (pos * a[i] - sum[pos - 1]);
ans %= MOD;
ans += pos == 0 ? (sum.back() - m * a[i]) : (sum.back() - sum[pos - 1] - (m - pos) * a[i]);
ans %= MOD;
}
else {
ans += m * a[i] - sum.back();
ans %= MOD;
}
}
cout << ans << endl;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
solve();
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | D - Sum of Differences |
| ユーザ | alexxy |
| 言語 | C++23 (GCC 15.2.0) |
| 得点 | 400 |
| コード長 | 1561 Byte |
| 結果 | AC |
| 実行時間 | 78 ms |
| メモリ | 10320 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 400 / 400 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| 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 | 3560 KiB |
| 01-01.txt | AC | 2 ms | 3656 KiB |
| 01-02.txt | AC | 2 ms | 3728 KiB |
| 01-03.txt | AC | 2 ms | 3880 KiB |
| 01-04.txt | AC | 2 ms | 3724 KiB |
| 01-05.txt | AC | 2 ms | 3848 KiB |
| 01-06.txt | AC | 2 ms | 3772 KiB |
| 01-07.txt | AC | 2 ms | 3784 KiB |
| 01-08.txt | AC | 2 ms | 3580 KiB |
| 01-09.txt | AC | 2 ms | 3848 KiB |
| 01-10.txt | AC | 1 ms | 3684 KiB |
| 01-11.txt | AC | 2 ms | 3724 KiB |
| 01-12.txt | AC | 2 ms | 3724 KiB |
| 01-13.txt | AC | 2 ms | 3852 KiB |
| 01-14.txt | AC | 2 ms | 3724 KiB |
| 01-15.txt | AC | 1 ms | 3480 KiB |
| 01-16.txt | AC | 1 ms | 3544 KiB |
| 01-17.txt | AC | 55 ms | 8912 KiB |
| 01-18.txt | AC | 58 ms | 8204 KiB |
| 01-19.txt | AC | 30 ms | 8008 KiB |
| 01-20.txt | AC | 13 ms | 5708 KiB |
| 01-21.txt | AC | 78 ms | 10308 KiB |
| 01-22.txt | AC | 38 ms | 10296 KiB |
| 01-23.txt | AC | 37 ms | 10320 KiB |
| 01-24.txt | AC | 49 ms | 10320 KiB |
| 01-25.txt | AC | 52 ms | 10304 KiB |
| 01-26.txt | AC | 28 ms | 10196 KiB |
| 01-27.txt | AC | 30 ms | 7972 KiB |
| 01-28.txt | AC | 34 ms | 8656 KiB |
| 01-29.txt | AC | 30 ms | 8504 KiB |
| 01-30.txt | AC | 56 ms | 9296 KiB |