60求条
查看原帖
60求条
1356485
wai_xing_sheng_wu楼主2025/7/21 17:27
#include<bits/stdc++.h>
using namespace std;
long long min1,min2,f1,r1,f2,r2;
int n;
long long q1[10000001];
long long q2[10000001];
int tong[100003];
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        int a;
        cin>>a;
        tong[a]++;
    }
    r1=0;f1=0;
    for(int i=1;i<=100000;i++)
    {
        for(int j=1;j<=tong[i];j++)
        {
            q1[++r1]=i;
        }
    }
    ;
    f2=r2=0;
    while(r2<=n-2)
    {

        if(f1==r1)min1=q2[++f2];
        else if(f2==r2)min1=q1[++f1];
             else if(q1[f1+1]<q2[f2+1])min1=q1[++f1];
                  else min1=q2[++f2];
        if(f1==r1)min2=q2[++f2];
        else if(f2==r2)min2=q1[++f1];
             else if(q1[f1+1]<q2[f2+1])min2=q1[++f1];
                  else min2=q2[++f2];
        q2[++r2]=min1+min2;
    }
    long long s=0;
    for(int i=1;i<=r2;i++)
    {
        s+=q2[i];
    }
    cout<<s;
    return 0;
}

2025/7/21 17:27
加载中...