社区讨论
为什么有两个点过不去
P1223排队接水参与者 5已保存回复 8
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 8 条
- 当前快照
- 1 份
- 快照标识符
- @mi6hhmuc
- 此快照首次捕获于
- 2025/11/20 04:57 4 个月前
- 此快照最后确认于
- 2025/11/20 04:57 4 个月前
CPP
var s,i,n:longint;a,b:array[1..1000]of longint;
procedure sort(l,r: longint);
var
i,j,x,y: longint;
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 not(i>j) then
begin
y:=a[i];
a[i]:=a[j];
a[j]:=y;
y:=b[i];
b[i]:=b[j];
b[j]:=y;
inc(i);
j:=j-1;
end;
until i>j;
if l<j then
sort(l,j);
if i<r then
sort(i,r);
end;
begin
readln(n);
for i:=1 to n do begin read(a[i]);b[i]:=i;end;
sort(1,n);
for i:=1 to n do write(b[i],' ');
writeln;
for i:=1 to n do
s:=s+a[i]*(n-i);
writeln(s/n:0:2);
end.
回复
共 8 条回复,欢迎继续交流。
正在加载回复...