1 solutions

  • 0
    @ 2024-12-10 23:09:26

    C++ :

    #include<iostream>
    #include<cstdio>
    using namespace std;
    int a[10001],n;
    int part(int a[],int p,int r);
    void my_sort(int a[],int p,int r);
    int main ()
    {
    	int i,j,s=0,x;
    	cin>>n;
    	for(i=1;i<=n;i++)
    	  cin>>a[i-1];
    	my_sort(a,0,n-1);
    	while(1)
        {
            if(n==1)
                break;
            a[1]+=a[0];
            x=a[1];
            s+=a[1];
            i=2;
            while(a[1]>a[i]&&i<n)i++;
            for(j=2;j<i;j++)
               a[j-2]=a[j];
            a[j-2]=x;
            for(j=j-1;j<n;j++)
                a[j]=a[j+1];
            n--;
        }
        cout<<s<<endl; 
    	return 0;
    }
    int part(int a[],int p,int r){
        int x=a[r];
        int middle=p;
        for (int j=p;j<r;j++){
            if (a[j] < x){
                int temp  = a[middle];
                a[middle] = a[j];
                a[j] = temp;
                middle++;
            }
        }
        int temp=a[r];
        a[r]=a[middle];
        a[middle]=temp;
        return middle;
    }
    void my_sort(int a[],int p,int r){
        if (p<r)
    	{
            int q=part(a,p,r);
            my_sort(a,p,q-1);
            my_sort(a,q+1,r);
        }
    }
    
    • 1

    Information

    ID
    577
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By