1 solutions
-
0
Pascal :
var n,i,j,k,min,mid,max:word; a:array[1..10000]of longint; p,temp:longint; procedure sort(l, r:Integer); var i,j,x,y:integer; begin i:=l;j:=r;x:=a[(l+r) div 2]; repeat while a[i]<x do inc(i); while x<a[j] do dec(j); if i<=j then begin y:=a[i]; a[i]:=a[j]; a[j]:=y; inc(i);dec(j); end; until i>j; if l<j then sort(l,j); if i<r then sort(i,r); end; begin readln(input,n); for i:=1 to n do read(input,a[i]); sort(1,n); p:=0; for i:=1 to n-2 do begin inc(a[i+1],a[i]); inc(p,a[i+1]); min:=i+2;max:=n; while min<=max do begin mid:=(min+max) div 2; if a[mid]=a[i+1] then begin j:=mid;break;end; if a[mid]<a[i+1] then min:=mid+1 else max:=mid-1; end; if min>max then j:=min; temp:=a[i+1]; for k:=i+1 to j-2 do a[k]:=a[k+1]; a[j-1]:=temp; end; p:=p+a[n]+a[n-1]; write(output,p); end.
- 1
Information
- ID
- 16878
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By