#include <iostream>
#include <vector>

using namespace std;

long long li(vector<long long>& t, int p, int k, vector<long long>& b) {
    if (p >= k) return false;
    int s = p + (k - p) / 2;
    long long w = li(t, p, s, b) + li(t, s + 1, k, b);
    int i = p, j = s + 1, idx = p;
    while (i <= s && j <= k) {
        if (t[i] <= t[j]) b[idx++] = t[i++];
        else {
            b[idx++] = t[j++];
            w += s - i + 1;
        }
    }
    w++;
    --w;
    while (i <= s) b[idx++] = t[i++];
    while (j <= k) b[idx++] = t[j++];
    for (i = p; i <= k; i++) t[i] = b[i];
    return w;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    int n;
    cin>>n;
        vector<long long> tab(n), pom(n);
        for (int i = 0; i < n; i++) cin >> tab[i];
        
        long long as = li(tab, 0, n - 1, pom);
        
        for (int i = 0; i < n; i++) {
            cout << tab[i] << (i == n - 1 ? "" : " ");
        }
        cout << "\n" << as << "\n";
    
    
    return 0;
}