1 条题解

  • 0
    #include <bits/stdc++.h>
    using namespace std;
    const int N=1e5+10;
    int f[20005];
    long long n,a[N];
    int main()
    {
    	cin>>n;
    	for(int i=1;i<=n;++i)
    	{
    		cin>>a[i];
    	}
    	sort(a+1,a+n+1);
        long long ans=0;
        while(n>1)
        {
        	a[++n]=a[2]+a[1];
        	ans+=a[n];
        	for(int i=3;i<=n;++i)
        	{
        		a[i-2]=a[i];
    		}
    		n-=2;
    		int sum=a[n];
    		for(int i=1;i<n;i++)
    		{
    			if(a[i-1]<=sum && a[i]>=sum)
    			{
    				for(int j=n;j>=i+1;--j)
    				{
    				    a[j]=a[j-1];
    				}
    				a[i]=sum;
    				break;
    			}
    		}
    	}
    	cout<<ans;
    	return 0;
    } 
    
    • 1

    信息

    ID
    1687
    时间
    1000ms
    内存
    256MiB
    难度
    9
    标签
    递交数
    24
    已通过
    2
    上传者