记录编号 |
2978 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 2007]纪念品分组 |
最终得分 |
100 |
用户昵称 |
辨机ZN |
是否通过 |
通过 |
代码语言 |
Pascal |
运行时间 |
0.106 s |
提交时间 |
2008-09-29 22:19:47 |
内存使用 |
0.17 MiB |
显示代码纯文本
program ex(f1,f2);
type
zn=array [1..30000] of integer;
var
a:zn; i,j,k,m,n,now,p,ans:longint; max:longint;
f1,f2:text; l,r:longint;
procedure qsort(left,right:longint);
var l,r,x,y:integer;
begin
l:=left; r:=right;
x:=a[(l+r) div 2];
repeat
while a[l]<x do inc(l);
while a[r]>x do dec(r);
if l<=r then
begin
y:=a[l];
a[l]:=a[r];
a[r]:=y;
inc(l);
dec(r);
end;
until l>r;
if l<right then qsort(l,right);
if r>left then qsort(left,r);
end;
begin
assign(f1,'group.in'); assign(f2,'group.out');reset(f1); rewrite(f2);
readln(f1,max);
readln(f1,n);
for i:=1 to n do readln(f1,a[i]);
qsort(1,n);
p:=0; now:=0; ans:=0; ans:=n;
l:=1; r:=n;
while r>=l do
begin
if (a[l]+a[r]<=max)and(l<>r)
then begin
dec(ans);
dec(r);
inc(l);
end
else r:=r-1;
end;
writeln(f2,ans);
for i:=1 to n do write(f2,a[i],' ');
close(f1);
close(f2);
end.