1 solutions
-
0
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