#include <algorithm>
#include <iostream>
#include<cstdio>
#include <vector>
using namespace std;


int main() {
    int a,b,counter;
    vector<int> arr;    //借用vector的popback函数来完成对最大值的去除
    while (cin >> a) { // 注意 while 处理多个 case
       // cout << a + b << endl;
     for (int i = 0; i < a; i++) 
     {
       cin >> b;
       arr.push_back(b);   //数组成型
     }
     b = arr[0];  //默认最大值
     counter = 0; //最大值标记
     for (int i = 0; i < a; i++) 
     {
       if(b < arr[i])
       {
        counter = i; //扫描一遍数组,获取最大值和标记
        b = arr[i];
       }
     }
     printf("%d\n",b);
     if (a == 1) {  //处理特殊情况
        b = -1;
        printf("%d\n",b);
        return 0;
       }
      arr[counter] = arr[a-1];  //把最大值交换到末尾
      arr.pop_back();  //pop末尾,完成对最大值的去除
      sort(arr.begin(),arr.end());  //灵魂一步,排序,对vector的排序需要begin与end两个函数来获取其内存位置
      for (int i = 0;i < a - 1; i++) {  //完成排序,输出
       printf("%d ",arr[i]);
      }
    }
}
// 64 位输出请用 printf("%lld")

使用vector来操作,输入即是push,扫描一遍数组获取最大值,把最大值与末尾的数值交换,pop末尾,排序,输出。