喜闻乐见刷水题。。。
Flover的12头牛正去参加今年Sczolympics冬季运动会,每个都有一个在1到1,000,000之间的技能等级。
Flover想要将它们分成4队,每队3人,并使得每个队伍在技能总和方面尽可能平衡(就是队伍中每头牛的技能等级的和)。现在Flover想要最小化S-s,S和s分别指的是各队伍中最大和最小的技能总和。由此便可以保证最神犇队和最蒟蒻队的差别是最小的。
无脑暴力。。。。。
const shuru='test.in';
shuchu='test.out';
var a:Array[0..12] of longint;
ans,i,j,k,n:longint;
hash:Array[1..4] of longint;
sum:Array[1..4] of longint;
procedure init;
begin
for i:=1 to 12 do readln(a[i]);
end;
function max(a,b:longint):longint;
begin
if a>b then exit(A);
exit(B);
end;
function min(a,b:longint):longint;
begin
if a<b then exit(A);
exit(B);
end;
procedure got;
var i,j,tot:longint;
begin
tot:=0;
for i:=1 to 4 do
for j:=i+1 to 4 do
tot:=max(tot,abs(sum[i]-sum[j]));
ans:=min(ans,tot);
end;
procedure search(n:longint);
var i:longint;
begin
if n=13 then begin
got;
exit;
end;
for i:=1 to 4 do
if hash[i]<3 then begin
inc(hash[i]);
inc(sum[i],a[n]);
search(n+1);
dec(hash[i]);
dec(sum[i],a[n]);
end;
end;
procedure main;
begin
init;
ans:=maxlongint;
search(1);
writeln(Ans);
end;
begin
main;
end.