讨论 / 求高手!看看我哪里错了
lvchaojie 2010-11-12 15:27:00
点我顶贴 收藏 删除
测试结果1: 运行错误|普通保护错误

测试结果2: 运行错误|普通保护错误

测试结果3: 运行错误|普通保护错误

测试结果4: 运行错误|普通保护错误

测试结果5: 运行错误|普通保护错误

测试结果6: 运行错误|普通保护错误

测试结果7: 运行错误|普通保护错误

测试结果8: 运行错误|普通保护错误

测试结果9: 运行错误|普通保护错误

测试结果10: 运行错误|普通保护错误

提交代码: view sourceprint?

type arr=array[1..10000] of longint;

var n,k,l,r,i,j,h,t,f,tot:longint;

a,sum:arr;

procedure px(var a:arr;var n:longint);

var i,j:longint; f:boolean;

begin

if n=1 then a[1]:=tot

else

begin

f:=false;i:=0;

repeat

inc(i);

if tot>a[i] then

begin

if n<k then

begin

for j:=n-1 downto i do

a[j+1]:=a[j];

a[i]:=tot;

f:=true;

end

else begin

for j:=n-1 downto i do

a[j+1]:=a[j];

a[i]:=tot;

f:=true;

end;

if i>n then exit;

end;

until f;

end;

end;

begin

readln(n,k,l,r);

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

for i:=1 to k do sum[i]:=-32000;

t:=1;

for i:=1 to n do

begin

tot:=0;h:=0;

for j:=i to n do

begin

inc(tot,a[j]);

inc(h);

if (h<=r)and(h>=l) then

begin

px(sum,t);

if t<k then inc(t);

end

else if h>r then break;

end;

end;

tot:=0;

for i:=1 to n do

if sum[i]=-32000 then tot:=tot

else tot:=sum[i]+tot;

write(tot);

end.

#1 阿德姆@2010-11-12 15:27:00
回复 删除
我只知道可能是数组越界

我知道C++的话是数组越界 不过Pascal不是有越界检查的吗

查看更多回复
提交回复