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 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++) {
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#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
AC × 2
AC × 32
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


2026-04-01 (Wed)
08:00:44 +09:00