#pragma optimize ("g",on)
#pragma GCC optimize("inline")
#pragma GCC optimize ("Ofast")
#pragma GCC optimize ("unroll-loops")
#pragma GCC optimize ("03")
#include <bits/stdc++.h>
#define all(x) x.begin(), x.end()
#define len(s) (ll) s.size()
#define pb push_back
#define F first 
#define S second 
using namespace std;
typedef long long ll;
const int N = 1e6 + 3; 
const int MAX = 2e4 + 11;
const int P = 31;
const int mod = 1e9 + 7;
const ll inf = 1e18;
ll n, sz, res;
ll a[N], b[N], val[N], t[N], pw[N];
vector < ll > comp;
map < ll, ll > mp;
signed main(){
  ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  cin >> n, pw[0] = 1;
  for(ll i = 1; i <= n; i++) cin >> a[i], comp.pb(a[i]);
  for(ll i = 1; i <= n; i++) cin >> b[i], comp.pb(b[i]);
  for(ll i = 1; i <= n; i++) pw[i] = (pw[i - 1] * 2) % mod;
  sort(all(comp));
  // for(ll i = 0; i < len(comp); i++)
  //   if(i == 0 || comp[i] != comp[i - 1])
  //     mp[comp[i]] = ++sz, val[sz] = comp[i],
  reverse(all(comp));
  for(ll x = 0; x < len(comp); x++){
    if(x && comp[x] == comp[x - 1]) continue;
    ll p = comp[x];
    for(ll i = 1; i <= n; i++){
      t[i] = 0;
      if(a[i] >= p) t[i]++;
      if(b[i] >= p) t[i]++;
    }
    for(ll i = 1, cur; i <= n; i++){
      cur = ((i * t[i]) % mod * pw[i - 1]) % mod;
      for(ll j = i + 1; j <= n; j++) cur *= (2 - t[j]), cur %= mod;
      res += cur;
      res %= mod, res += mod, res %= mod;
      cur = (((i - 1) * t[i]) % mod * pw[n - i]) % mod;
      for(ll j = 1; j <= i - 1; j++) cur *= (2 - t[j]), cur %= mod;
      res -= cur;
      res %= mod, res += mod, res %= mod;
    }
  }
  for(ll i = 1; i <= n; i++){
    res -= pw[n - 1] * (a[i] + b[i]) % mod;
    res %= mod, res += mod, res %= mod;
  }
  cout << res;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |