program life;
var
int:array[1..4] of longint;
i,j,ans:longint;
begin
for i:=1 to 4 do
read (int[i]);
if int[1]>=int[4] then
begin
inc (ans,int[4]);
int[1]:=int[1]-int[4];
end
else
begin
inc (ans,int[1]);
int[1]:=0;
end;
if (int[2]=int[3]) then
begin
inc (ans,int[1] div 5);
int[1]:=0;
end;
if int[2]>=int[3] then
begin
inc (ans,int[3]);
int[2]:=int[2]-int[3];
int[3]:=int[1] mod 3;
end
else
begin
inc (ans,int[2]);
int[3]:=int[3]-int[2];
int[2]:=int[1] mod 2;
end;
if int[2]>=int[3] then
inc (ans,int[3])
else
inc (ans,int[2]);
writeln (ans);
end.
我的程序我用的是贪心为什么只能对六个点?
这道题使用搜索吗?
t1=min(a,d),t2=min(b,c);
total+=t1,a-=t1,d-=t1;
total+=t2,b-=t2,c-=t2;
for(;a>=1&&b>=2;)
a--,b-=2,total++;
for(;a>=2&&c>=1;)
a-=2,c--,total++;
for(;a>=3&&b>=1;)
a-=3,b--,total++;
for(;a>=5;)
a-=5,total++;