func_code_string: #include <bits/stdc++.h>   using namespace std;   const int mod = 1e9 + 7;   long long Inv[1000005];   void inv(int n) {     Inv[1] = 1;     for (int i = 2; i <= n; i++) {       Inv[i] = (mod - mod / i * Inv[mod % i] % mod) % mod;     }   }   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     int n;     cin >> n;     long long tot = 1;     for (int i = 1; i < n + 1; i++) {       tot *= i;       tot %= mod;     }     vector<int> v;     for (int i = 0; i < n; i++) {       int add;       cin >> add;       v.push_back(add);     }     inv(n);     sort(v.rbegin(), v.rend());     long long cur = 0;     long long ans = 0;     int last = 0;     int cnt = 0;     for (int i = 0; i < n; i++) {       if (v[i] == last) {         cur++;         cnt++;         continue;       }       if (last != v[0]) {         ans += tot * last % mod * Inv[cur] % mod * cnt % mod;         ans %= mod;       }       cur++;       cnt = 1;       last = v[i];     }     if (last != v[0]) {       ans += tot * last % mod * Inv[cur] % mod * cnt % mod;       ans %= mod;     }     cout << ans <<   n ;   }   