func_code_string: #include <bits/stdc++.h>   using namespace std;   long long gi() {     char cc = getchar();     long long cn = 0, flus = 1;     while (cc <  0  || cc >  9 ) {       if (cc ==  - ) flus = -flus;       cc = getchar();     }     while (cc >=  0  && cc <=  9 ) cn = cn * 10 + cc -  0 , cc = getchar();     return cn * flus;   }   const long long P = 998244353;   long long fpow(long long x, long long k) {     long long ans = 1, base = x;     while (k) {       if (k & 1) ans = 1ll * ans * base % P;       base = 1ll * base * base % P, k >>= 1;     }     return ans;   }   const long long N = 3e5 + 5;   long long m, n, a[N], fac[N], inv[N];   long long C(long long x, long long y) {     return fac[x] * inv[y] % P * inv[x - y] % P;   }   signed main() {     m = gi(), n = m * 2;     for (register long long i = (1); i <= (n); ++i) a[i] = gi();     sort(a + 1, a + n + 1);     fac[0] = inv[0] = 1;     for (register long long i = (1); i <= (n); ++i) fac[i] = fac[i - 1] * i % P;     for (register long long i = (1); i <= (n); ++i) inv[i] = fpow(fac[i], P - 2);     long long ans = 0;     for (register long long i = (1); i <= (n); ++i) {       long long z = a[i] * C(n - 1, m - 1);       if (i <= m)         ans = (ans - z + P) % P;       else         ans = (ans + z + P) % P;     }     cout << ans * 2 % P << endl;     return 0;   }   