func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long N = 2e5 + 7;   const string alpha =  abcdefghijklmnopqrstuvwxyz ;   long long power(long long x, long long y) {     long long res = 1;     x = x;     while (y > 0) {       if (y & 1) res = (res * x);       y = y >> 1;       x = (x * x);     }     return res;   }   template <typename T>   T gcd(T a, T b) {     if (a == 0) return b;     return gcd(b % a, a);   }   template <typename T>   T powm(T a, T b, long long m) {     T cnt = 1;     while (b > 0) {       if (b % 2 == 1) cnt = (cnt * a) % m;       b /= 2;       a = (a * a) % m;     }     return cnt % m;   }   long long ncr(long long n, long long r) {     long long res = 1;     if (r > n) return 0;     if (r > n - r) r = n - r;     for (long long i = 0; i < r; i++) {       res *= (n - i);       res /= (i + 1);     }     return res;   }   long long sqr(long long x) { return x * x; }   void solve() {     long long int n;     cin >> n;     vector<long long> a(n), b(n);     for (int i = 0; i < n; ++i) {       cin >> a[i];       a[i] = a[i] * (i + 1) * (n - i);     }     for (int i = 0; i < n; ++i) {       cin >> b[i];     }     sort((a).begin(), (a).end());     sort((b).rbegin(), (b).rend());     long long ans = 0;     for (int i = 0; i < n; ++i) {       a[i] %= 998244353;       ans = (ans + a[i] * b[i]) % 998244353;     }     cout << ans;   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     int tc;     tc = 1;     while (tc--) solve();     return 0;   }   