alt

传送门-->>>数字计数


#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    vector<int>a(n);
    for(int i = 0;i < n;i++)
    {
        cin>>a[i];
    }
    sort(a.begin(),a.end());//用sort函数升序排序
    int se_min = 0;//次小数字
    int cnt1 = 0;//计数,这个次小数是唯一确定的,比较成功一次就不用比较了
    int se_max = 0;//次大的数
    int max_n = a[n-1];//最大的数
    int min_n = a[0];//最小的数
    for(int i = 0;i < n;i++){
        if(a[i]>min_n&&cnt1<1){
            se_min = a[i];
            cnt1++;
        }
        if(a[i]<max_n)
        {
            se_max = a[i];
        }
    }
    cout<<max_n-se_max<<" "<<max_n-se_min<<" "<<se_max-se_min<<" "<<se_max-min_n<<endl;
    return 0;
}