//插入排序
/* 输入：6
 5 2 4 6 1 3

 */
#include <stdio.h>
#include <stdlib.h>
void print(int a[],int n){
    for(int i=0;i<n;i++){
        //打印
        printf("%d ",a[i]);
    }
    printf("\n");
}
int bubble_sort(int a[],int n){
    int i,j,t,s=0;   //i为未排序部分的起始下标,sum记录交换次数(需初始化)
    for (i=0; i<n-1; i++) {
        for (j=n-1; j>i; j--) {
            if(a[j]<a[j-1]){   //交换相邻值
                t = a[j];
                a[j] = a[j-1];
                a[j-1] = t;
                s = s+1;   //交换次数+1
        }
    }
    }
    return s;
}
int main(){
    int n,a[100],s;
    scanf("%d",&n);   //输入数组元素
    for (int i=0; i<n; i++) {
        scanf("%d",&a[i]);
    }
    s=bubble_sort(a, n);
    print(a,n);
    printf("%d\n",s);
    return 0;
}

