首页 > 试题广场 >

var n, s, i : longint; ...

[填空题]
var
  n, s, i : longint;
  a, t : array[0..100005] of longint;
procedure mergesort(l, r : longint);
var
  mid, p, i, j : longint;
begin
  if (l = r) then exit;
  mid := (l + r) div 2;
  p := l;
  i := l;
  j := mid + 1;
  mergesort(l, mid);
  mergesort(mid + 1, r);
  while (i <= mid) and (j <= r) do
  begin
    if (a[j] < a[i]) then
    begin
      s := s + mid - i + 1;
      t[p] := a[j];
      p := p + 1;
      j := j + 1;
    end else
    begin
      t[p] := a[i];
      p := p + 1;
      i := i + 1;
    end;
  end;
  while (i <= mid) do
  begin
    t[p] := a[i];
    p := p + 1;
    i := i + 1;
  end;
  while (j <= r) do
  begin
    t[p] := a[j];
    p := p + 1;
    j := j + 1;
  end;
  for i := l to r do
    a[i] := t[i];
end;
begin
  read(n);
  for i := 1 to n do
    read(a[i]);
  writeln;
  writeln;
  mergesort(1, n);
  writeln(s);
end.

输入:6
2 6 3 4 5 1
输出:1

这道题你会答吗?花几分钟告诉大家答案吧!