Submission #74575639
Source Code Expand
Copy
#include <stdio.h>#include <stdlib.h>int cmp(const void* x, const void* y) {int a = *(const int*)x, b = *(const int*)y;return (a > b) - (a < b);}#define MOD_BY 998244353int add(int a, int b) {return a + b - MOD_BY * (a + b >= MOD_BY);}int sub(int a, int b) {return b == 0 ? a : add(a, MOD_BY - b);}int mul(int a, int b) {return (int)((long long)a * b % MOD_BY);}int N, M;int A[312345];int B[312345];int Bsum[312345];int main(void) {int i;int ans = 0;if (scanf("%d%d", &N, &M) != 2) return 1;for (i = 0; i < N; i++) {if (scanf("%d", &A[i]) != 1) return 1;}for (i = 1; i <= M; i++) {if (scanf("%d", &B[i]) != 1) return 1;}qsort(B + 1, M, sizeof(*B), cmp);for (i = 1; i <= M; i++) Bsum[i] = add(Bsum[i - 1], B[i]);for (i = 0; i < N; i++) {
#include <stdio.h>
#include <stdlib.h>
int cmp(const void* x, const void* y) {
int a = *(const int*)x, b = *(const int*)y;
return (a > b) - (a < b);
}
#define MOD_BY 998244353
int add(int a, int b) {
return a + b - MOD_BY * (a + b >= MOD_BY);
}
int sub(int a, int b) {
return b == 0 ? a : add(a, MOD_BY - b);
}
int mul(int a, int b) {
return (int)((long long)a * b % MOD_BY);
}
int N, M;
int A[312345];
int B[312345];
int Bsum[312345];
int main(void) {
int i;
int ans = 0;
if (scanf("%d%d", &N, &M) != 2) return 1;
for (i = 0; i < N; i++) {
if (scanf("%d", &A[i]) != 1) return 1;
}
for (i = 1; i <= M; i++) {
if (scanf("%d", &B[i]) != 1) return 1;
}
qsort(B + 1, M, sizeof(*B), cmp);
for (i = 1; i <= M; i++) Bsum[i] = add(Bsum[i - 1], B[i]);
for (i = 0; i < N; i++) {
int le = 0, g = M + 1;
while (le + 1 < g) {
int m = le + (g - le) / 2;
if (B[m] <= A[i]) le = m; else g = m;
}
ans = add(ans, sub(mul(A[i], le), Bsum[le]));
ans = add(ans, sub(sub(Bsum[M], Bsum[le]), mul(A[i], M + 1 - g)));
}
printf("%d\n", ans);
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - Sum of Differences |
| User | mikecat |
| Language | C23 (GCC 14.2.0) |
| Score | 400 |
| Code Size | 1126 Byte |
| Status | AC |
| Exec Time | 109 ms |
| Memory | 5352 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| 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 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00-sample-01.txt | AC | 1 ms | 1620 KiB |
| 00-sample-02.txt | AC | 0 ms | 1580 KiB |
| 01-01.txt | AC | 2 ms | 1868 KiB |
| 01-02.txt | AC | 2 ms | 1868 KiB |
| 01-03.txt | AC | 2 ms | 1708 KiB |
| 01-04.txt | AC | 2 ms | 1808 KiB |
| 01-05.txt | AC | 2 ms | 1752 KiB |
| 01-06.txt | AC | 1 ms | 1760 KiB |
| 01-07.txt | AC | 2 ms | 1868 KiB |
| 01-08.txt | AC | 2 ms | 1752 KiB |
| 01-09.txt | AC | 2 ms | 1868 KiB |
| 01-10.txt | AC | 1 ms | 1736 KiB |
| 01-11.txt | AC | 2 ms | 1708 KiB |
| 01-12.txt | AC | 1 ms | 1708 KiB |
| 01-13.txt | AC | 2 ms | 1752 KiB |
| 01-14.txt | AC | 2 ms | 1784 KiB |
| 01-15.txt | AC | 0 ms | 1592 KiB |
| 01-16.txt | AC | 0 ms | 1544 KiB |
| 01-17.txt | AC | 81 ms | 4492 KiB |
| 01-18.txt | AC | 81 ms | 4188 KiB |
| 01-19.txt | AC | 52 ms | 4028 KiB |
| 01-20.txt | AC | 20 ms | 2904 KiB |
| 01-21.txt | AC | 109 ms | 5256 KiB |
| 01-22.txt | AC | 58 ms | 5232 KiB |
| 01-23.txt | AC | 59 ms | 5352 KiB |
| 01-24.txt | AC | 61 ms | 5268 KiB |
| 01-25.txt | AC | 73 ms | 5216 KiB |
| 01-26.txt | AC | 44 ms | 5276 KiB |
| 01-27.txt | AC | 49 ms | 4040 KiB |
| 01-28.txt | AC | 57 ms | 4256 KiB |
| 01-29.txt | AC | 52 ms | 4180 KiB |
| 01-30.txt | AC | 82 ms | 4616 KiB |