begin
readln(num[1],num[2],num[3],num[4]);
min1:=num[1];
min2:=num[2];
p1:=4;
p2:=3;
if min1>num[4] then begin
min1:=num[4];p1:=1;
end;
if min2>num[3] then
begin
min2:=num[3];p2:=2;
end;
num[p1]:=num[p1]-min1;
num[p2]:=num[p2]-min2;
sum:=min1+min2;
if ((num[p1]=0) or (num[p2]=0)) and (p1<>1) then
begin
write(sum);
halt;
end;
if (p2=3) and (p1=4) then
begin
write(sum);
halt;
end;
if (p1=4) and (p2=2) then
begin
write(sum);
halt;
end;
if (p1=1) and (p2=3) then
begin
if num[1]>num[3]*2 then
sum:=sum+num[3]+(num[1]-num[3]*2) div 5
else sum:=num[1] div 2+sum;
write(sum);
halt;
end;
if (p1=1) and (p2=2) then begin
tmp:=num[2] div 2;
if num[1]<tmp then
begin
write(sum+num[1]);
halt;
end;
tmp:=num[1] div 3;
if num[2]<tmp then
begin
write(sum+num[2]);
halt;
end;
tmp:=num[2] div 2;
min:=num[2]-tmp*2;
state:=(num[1]-tmp) div 3;
if min>state then min:=state;
sum1:=sum+tmp+min+(num[1]-tmp-3*min) div 5;
tmp:=num[1] div 3;
min:=num[1]-tmp*3;
state:=(num[2]-tmp) div 2;
if min>state then min:=state;
sum2:=sum+tmp+min+(num[1]-3*tmp-min) div 5;
if sum1>sum2 then sum:=sum1
else sum:=sum2;
write(sum);
end;
end.
这是90分的程序,第九个过不了。。。。标准116,错误108
核心代码:
int main ()
{
int a,b,c,d,s;
cin>>a>>b>>c>>d;
s=0;
while (a>0 && d>0) {
a--;
d--;
s++;
}
while (b>0 && c>0) {
b--;
c--;
s++;
}
while (c>0 && a>=2) {
c--;
a-=2;
s++;
}
while (b>=2 && a>0) {
b-=2;
a--;
s++;
}
while (b>0 && a>=3) {
b--;
a-=3;
s++;
}
while (a>=5) {
a-=5;
s++;
}
cout<<s<<endl;
return 0;
}