li20082008li 2012-06-19 21:23:00
点我顶贴
收藏
删除
program ex127;
var
a:array[1..30000] of integer;
w,n,m,i,j,s,p,q:longint;
bo:boolean;
begin
readln(w);
readln(n);
for i:=1 to n do readln(a[i]);
i:=1;
repeat
bo:=true;
for j:=1 to n-i do
if a[j]<a[j+1] then
begin
s:=a[j]; a[j]:=a[j+1]; a[j+1]:=s; bo:=false;
end;
inc(i);
until bo;
s:=0;
p:=n;
q:=1;
while p>=q do
begin
s:=a[p]+a[q];
if s>w then begin inc(q); inc(m);end
else begin inc(q); dec(p); inc(m);end;
end;
write(m);
end.
哪位大牛帮我看一下,我用的是冒泡排序的改进法(标记法),写得不好还请见谅~