采用数组模拟,思想类似于插入排序。

import java.util.Scanner;

public class NC16663 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int []array = new int[n];
        for(int i = 0;i<n;i++){
            array[i] = sc.nextInt();
        }
        Arrays.sort(array);
        int ans = 0;
        for(int i  = 0;i<n-1;i++){
            array[i+1] = array[i]+array[i+1];
            ans +=array[i+1];
            int j = 2;
            int z = 1;
            while(i+j<n){
                
                if(array[i+z]>array[i+j]){
                    int temp = array[i+z];
                    array[i+z] = array[i+j];
                    array[i+j] = temp;
                    z++;
                    j++;
                }else{
                    j = 2;
                    break;
                }
            }
            for(int h:array) System.out.print(h+" ");
            System.out.println();
        }
        System.out.println(ans);
    }
}