```pascal
var
w,n,i,j,s,temp:longint;
a:array[1..30000]of longint;
procedure kp(l,r:longint);
var
i,j,temp,mid:longint;
begin
i:=l;j:=r;
mid:=a[(i+j) div 2];
while i<=j do
begin
while a[i]<mid do inc(i);
while a[j]>mid do dec(j);
if i<=j then
begin
temp:=a[i];a[i]:=a[j];a[j]:=temp;inc(i);dec(j);
end;
end;
if i<r then kp(i,r);
if j>l then kp(l,j);
end;
begin
readln(w);
readln(n);for i:=1 to n do readln(a[i]);
kp(1,n);
i:=1;j:=n;
repeat
if a[i]+a[j]<=w then begin inc(s);inc(i);dec(j);end
else begin inc(s);dec(j);end;
until abs(i-j)<2;
write(s+1);
end.
```
by 张全 @ 2018-03-06 20:13:35
额,c++代码
by 巫神搞比利 @ 2018-03-06 20:54:22
@[巫神搞比利](/space/show?uid=80746) 你是不是没注意到吗每个包装只能放两件......
by TianZ @ 2018-04-24 17:55:33
@[天真、陈长生](/space/show?uid=67212) 啊!一语点醒梦中人!
by leonyy @ 2018-05-26 16:35:06