讨论 / asd
boolean2 2008-10-27 22:23:00
点我顶贴 收藏 删除
program yy(input,output);

var

n,m,i,j,k,zs:longint;

zz:int64;

bb:real;

a,b,id:array[1..100000]of longint;

procedure kk(lx,rx:longint);

var

x,t,i,j,no:longint;

begin

i:=lx;j:=rx; x:=a[random(j-i+1)+i];

repeat

while (a[i]<x) do inc(i);

while (a[j]>x) do dec(j);

if (i<=j) then

begin

t:=a[i];

a[i]:=a[j];

a[j]:=t;

inc(i);

dec(j);

end;

until (i>j);

if (lx<j) then kk(lx,j);

if (i<rx) then kk(i,rx);

end;

begin

readln(n);

for i:=1 to n do

begin

read(a[i]);

b[i]:=a[i];

end;

kk(1,n);

for i:=1 to n-1 do

begin

for j:=1 to n do

if a[i]=b[j] then begin

write(j,’ ’);

b[j]:=0;

break;

end;

end;

for i:=1 to n do

if a[n]=b[i] then write(i);

k:=n+1;

i:=0;

while (k<>0) and (i<n) do

begin

dec(k);

inc(i);

zs:=zs+a[i]*k;

end;

writeln;

writeln(zs/n:0:2);

end.

查看更多回复
提交回复