讨论 / 谁来?
kingoffighters 2008-11-02 23:38:00
点我顶贴 收藏 删除
var num:array[1..4] of integer;p1,p2,sum1,sum2,sum,min1,min2,min,state,tmp:integer;

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

#1 kingoffighters@2008-11-02 01:46:00
回复 删除
难道没人会?
#2 kingoffighters@2008-11-02 01:46:00
回复 删除
难道没人会?
#3 zzkca930110@2008-11-02 01:50:00
回复 删除
我用的是C++。

核心代码:

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;

}

#4 kingoffighters@2008-11-02 23:38:00
回复 删除
尽管我看不懂。。。
查看更多回复
提交回复