32 lines
888 B
ObjectPascal
32 lines
888 B
ObjectPascal
var
|
|
c,n,ans,i,j,tmp,x:longint;
|
|
a:array[1..200] of longint;
|
|
|
|
function min(i,j:longint):longint;
|
|
begin
|
|
if i=j then exit(a[i] shr 1);
|
|
if a[i]<a[j] then exit(a[i]) else exit(a[j]);
|
|
end;
|
|
|
|
begin
|
|
assign(input,'group.in');reset(input);
|
|
assign(output,'group.out');rewrite(output);
|
|
readln(c);
|
|
readln(n);
|
|
for i:=1 to n do
|
|
begin
|
|
read(x);
|
|
inc(a[x]);
|
|
end;
|
|
for i:=200 downto 1 do if a[i]>0 then
|
|
for j:=200 downto 1 do if ((i<>j)or((i=j)and(a[i]>1)))and(a[i]>0)and(a[j]>0)and(i+j<=c) then
|
|
begin
|
|
tmp:=min(i,j);
|
|
dec(ans,tmp);
|
|
dec(a[i],tmp);
|
|
dec(a[j],tmp);
|
|
end;
|
|
writeln(ans+n);
|
|
close(input);
|
|
close(output);
|
|
end. |