var i,n,m,j,ans:longint; r:real; a,b,c:array[1..10000] of longint; procedure dp(l,r:longint); var i,j,key,m:longint; begin if l>r then exit; i:=l; j:=r; key:=a[(l+r) div 2]; repeat while (a[i]<key) do inc(i); while (a[j]>key) do dec(j); if i<=j then begin m:=a[i]; a[i]:=a[j]; a[j]:=m; m:=b[i]; b[i]:=b[j]; b[j]:=m; inc(i); dec(j); end; until i>j; dp(l,j); dp(i,r); end; begin readln(n); for i:=1 to n do begin read(a[i]); b[i]:=i; end; dp(1,n); for i:=1 to n do for j:=1 to i-1 do c[i]:=c[i]+a[j]; for i:=1 to n do ans:=ans+c[i]; write(trunc((ans/n)*10000+0.5)/10000:0:2); end.
排队取水
最新推荐文章于 2022-12-19 21:39:24 发布