兰姐姐是来自火星的女王。
相信你们一定对兰姐姐不熟悉,她统领整个火星,在各方面拥有最高权力。
很久很久以前,兰爸爸是火星的国王,去世以后,两个女儿争夺王位。火星上最聪明的人是辣椒酱,他帮助兰姐姐夺得了王位,而兰姐姐的姐姐Horse countryxing没有得到王位,便离开火星前往地球修行。宇宙有三大语言,M++,Marscal,E++,其中地球的E++速度最快。
兰姐姐智商不高,因此有什么题目总喜欢问辣椒酱。火星上的蒟蒻使用Marscal速度比兰姐姐的M++跑的快。
火星上的蒟蒻(jǔ ruò)出了一道难题:
给出N个魔方,每个魔方有一个完成时间,现在要求完成魔方的总时间最短。
兰姐姐当然不能自己上,于是她拉上了好朋友辣椒酱。两个人共同完成N个魔方,也就是把N个魔方分成两份(不一定相等),使得完成时间最长的那份时间最短。
兰姐姐的结局烂不烂就掌握在你手里了。
相信你们一定对兰姐姐不熟悉,她统领整个火星,在各方面拥有最高权力。
很久很久以前,兰爸爸是火星的国王,去世以后,两个女儿争夺王位。火星上最聪明的人是辣椒酱,他帮助兰姐姐夺得了王位,而兰姐姐的姐姐Horse countryxing没有得到王位,便离开火星前往地球修行。宇宙有三大语言,M++,Marscal,E++,其中地球的E++速度最快。
兰姐姐智商不高,因此有什么题目总喜欢问辣椒酱。火星上的蒟蒻使用Marscal速度比兰姐姐的M++跑的快。
火星上的蒟蒻(jǔ ruò)出了一道难题:
给出N个魔方,每个魔方有一个完成时间,现在要求完成魔方的总时间最短。
兰姐姐当然不能自己上,于是她拉上了好朋友辣椒酱。两个人共同完成N个魔方,也就是把N个魔方分成两份(不一定相等),使得完成时间最长的那份时间最短。
兰姐姐的结局烂不烂就掌握在你手里了。
题解:
BFS,广搜。
代码:
var
a:array[1..100000] of longint;
i,n,max,z:longint;
procedure main(x,y,z:longint);
var
s:longint;
begin
if z=n+1 then
begin
if x>y then s:=x else s:=y;
if s<max then max:=s;
exit;
end;
if (x>max)or(y>max) then exit;
main(x+a[z],y,z+1);
main(x,y+a[z],z+1);
end;
begin
readln(n);
for i:=1 to n do
read(a[i]);
max:=maxlongint;
main(0,0,1);
writeln(max);
end.
a:array[1..100000] of longint;
i,n,max,z:longint;
procedure main(x,y,z:longint);
var
s:longint;
begin
if z=n+1 then
begin
if x>y then s:=x else s:=y;
if s<max then max:=s;
exit;
end;
if (x>max)or(y>max) then exit;
main(x+a[z],y,z+1);
main(x,y+a[z],z+1);
end;
begin
readln(n);
for i:=1 to n do
read(a[i]);
max:=maxlongint;
main(0,0,1);
writeln(max);
end.