func_code_string: #include <bits/stdc++.h>   using namespace std;   long long int bit[1000010] = {0};   long long int get_sum(int i) {     long long int ans = 0;     while (i > 0) {       ans += bit[i];       i -= i & (-i);     }     return ans;   }   void update(int i, int n) {     while (i <= n) {       bit[i] += 1;       i += i & (-i);     }   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     int n;     cin >> n;     long long int arr[n], small[n], big[n], tmp[n];     long long int max1 = 0;     for (int i = 0; i < n; i++) {       cin >> arr[i];       tmp[i] = arr[i];     }     sort(tmp, tmp + n);     for (int i = 0; i < n; i++) {       arr[i] = lower_bound(tmp, tmp + n, arr[i]) - tmp + 1;       if (arr[i] > max1) max1 = arr[i];     }     long long int ans = 0;     for (int i = (n - 1); i >= 0; i--) {       small[i] = get_sum(arr[i] - 1);       update(arr[i], max1);     }     for (int i = 0; i <= max1; i++) bit[i] = 0;     for (int i = 0; i < n; i++) {       big[i] = i - get_sum(arr[i]);       update(arr[i], max1);       ans += big[i] * small[i];     }     cout << ans;     return 0;   }   