level 7
var
a,b:array[1..100000]of integer;
sum,i,n:longint; procedure work(f,l:longint);
var
mid,g,m,k,j:longint;
begin
if f=l then exit;
mid:=(f+l)div 2;
work(f,mid);
work(mid+1,l);
j:=f; m:=f; k:=mid+1;
while (j<=mid)and(k<=l) do
begin
while (a[j]<=a[k])and(j<=mid) do
begin
b[m]:=a[j];
inc(m); inc(j);
end; while (a[j]>a[k])and(k<=l) do
begin
b[m]:=a[k];
sum:=sum+k-mid-1;
inc(k);
end;
end;
while j<=mid do
begin
b[m]:=a[j];
sum:=sum+l-mid-1;
inc(m);
inc(j);
end;
while k<=l do
begin
b[m]:=a[k];
inc(m);
inc(k);
end;
for g:=f to l do
a[g]:=b[g];
end; begin
{assign(input,'deseq.in'); reset(input);
assign(output,'deseq.out'); rewrite(output);}
sum:=0;
readln(n);
for i:=1 to n do readln(a[i]);
work(1,n);
writeln(sum);
{close(input); close(output);}
end.
不晓得怎么输不出结果
PS还不是跪了
2012年03月30日 05点03分