讨论 / 合并果子,来看看啊!
slzxqsk 2008-09-13 01:36:00
点我顶贴 收藏 删除
程序如下:

var

i,j,k,n,s:longint;

a:array[0..10001] of longint;

procedure pai(low,high:longint);

var i,j,x:longint;

begin

if low<high then

begin

i:=low;j:=high;x:=a[i];

repeat

while (x<=a[j]) and (i<j) do dec(j);

if (x>a[j]) and (i<j) then begin a[i]:=a[j];inc(i);end;

while (x>=a[i]) and (i<j) do inc(i);

if (x<a[i]) and (i<j) then begin a[j]:=a[i];dec(j);end;

until i=j;

a[i]:=x;

pai(low,i);

pai(i+1,high);

end;

end;

begin

readln(n);

if n=1 then begin write(a[1]);halt;end;

for i:=1 to n do read(a[i]);

pai(1,i);{快排}

k:=0;

for i:=2 to n do

begin

a[i]:=a[i]+a[i-1];

k:=k+a[i];

end;

write(k);

end.

运行结果:

题目编号:25-合并果子 查看该题

状态: Unaccepted

测评机: Xeost[5]

得分: 10分

提交日期: 2008-9-11 22:11:00

有效耗时: 156毫秒

测试结果1: 通过本测试点|有效耗时156:ms

测试结果2: 测试结果错误.错误结果为:2870599

正确结果应为:89471

测试结果3: 测试结果错误.错误结果为:16606829

正确结果应为:481961

测试结果4: 测试结果错误.错误结果为:852550115

正确结果应为:485694875

测试结果5: 测试结果错误.错误结果为:108268555

正确结果应为:1233019094

测试结果6: 测试结果错误.错误结果为:-633409126

正确结果应为:131173003

测试结果7: 测试结果错误.错误结果为:-1995714425

正确结果应为:199205993

测试结果8: 测试结果错误.错误结果为:-1090908431

正确结果应为:130108340

测试结果9: 测试结果错误.错误结果为:1748515718

正确结果应为:233393206

测试结果10: 测试结果错误.错误结果为:-2146116654

正确结果应为:260332759

#1 世纪末的魔术师@2008-09-12 20:34:00
回复 删除
显然你合并的时候错了。。
#2 slzxqsk@2008-09-13 00:13:00
回复 删除
如何修改。。。
#3 slzxqsk@2008-09-13 01:31:00
回复 删除
O,I SEE!合一个还要定位啊!
#4 slzxqsk@2008-09-13 01:33:00
回复 删除
谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

谁有测试数据,给赏!!!!!

#5 slzxqsk@2008-09-13 01:36:00
回复 删除
为什么还是错啊?????说出给赏!!!!!!

var

i,j,k,n,s,p:longint;

a:array[0..10001] of longint;

procedure pai(low,high:longint);

var i,j,x:longint;

begin

if low<high then

begin

i:=low;j:=high;x:=a[i];

repeat

while (x<=a[j]) and (i<j) do dec(j);

if (x>a[j]) and (i<j) then begin a[i]:=a[j];inc(i);end;

while (x>=a[i]) and (i<j) do inc(i);

if (x<a[i]) and (i<j) then begin a[j]:=a[i];dec(j);end;

until i=j;

a[i]:=x;

pai(low,i);

pai(i+1,high);

end;

end;

begin

readln(n);

if n=1 then begin write(a[1]);halt;end;

for i:=1 to n do read(a[i]);

pai(1,i);k:=0;a[n+1]:=maxlongint;

for i:=2 to n do

begin

k:=k+a[i]+a[i-1];

a[i]:=a[i]+a[i-1];

for j:=i+1 to n+1 do

if a[i]<a[j] then

begin

for p:=i to j-2 do a[p]:=a[p+1];

a[j-1]:=a[i];

break;

end;

end;

write(k);

end.

查看更多回复
提交回复