← Home
```go
package main

import (
	"fmt"
	"io"
	"os"
	"sort"
)

func main() {
	in := readAll(os.Stdin)
	var n int
	in = readInt(in, &n)

	a := make([]int, 2*n)
	for i := 0; i < 2*n; i++ {
		in = readInt(in, &a[i])
	}

	sort.Ints(a)

	const MOD = 998244353
	var sum int64 = 0
	for i := 0; i < n; i++ {
		sum -= int64(a[i])
	}
	for i := n; i < 2*n; i++ {
		sum += int64(a[i])
	}

	sum %= MOD
	if sum < 0 {
		sum += MOD
	}

	fact := make([]int64, 2*n+1)
	fact[0] = 1
	for i := 1; i <= 2*n; i++ {
		fact[i] = (fact[i-1] * int64(i)) % MOD
	}

	invFactN := power(fact[n], MOD-2, MOD)
	comb := (fact[2*n] * invFactN) % MOD
	comb = (comb * invFactN) % MOD

	ans := (sum * comb) % MOD
	fmt.Println(ans)
}

func readAll(r io.Reader) []byte {
	b, _ := io.ReadAll(r)
	return b
}

func readInt(b []byte, v *int) []byte {
	*v = 0
	for len(b) > 0 && (b[0] < '0' || b[0] > '9') {
		b = b[1:]
	}
	for len(b) > 0 && b[0] >= '0' && b[0] <= '9' {
		*v = *v*10 + int(b[0]-'0')
		b = b[1:]
	}
	return b
}

func power(base, exp, mod int64) int64 {
	res := int64(1)
	base %= mod
	for exp > 0 {
		if exp%2 == 1 {
			res = (res * base) % mod
		}
		base = (base * base) % mod
		exp /= 2
	}
	return res
}
```