|
|
back to boardCommon BoardHelp me with Problem 1140! Who has solved Problem 1140? Why do I get WA? Or:Who can paste his/her codes up here(Pascal)? program swamp_incident; var reg:array['X'..'Z']of integer; bb:boolean; procedure reduce; begin if (reg['X']*reg['Z']>0) then begin if abs(reg['X'])<abs(reg['Z']) then begin reg['Z']:=reg['Z']-reg['X']; reg['Y']:=reg['Y']+reg['X']; reg['X']:=0; bb:=true; end else begin reg['X']:=reg['X']-reg['Z']; reg['Y']:=reg['Y']+reg['Z']; reg['Z']:=0; bb:=true; end; end; if (reg['X']*reg['Y']<0) then begin if abs(reg['X'])<abs(reg['Y']) then begin reg['Z']:=reg['Z']+(reg['Y'] div abs(reg['Y']))*abs(reg['X']); reg['Y']:=reg['Y']+reg['X']; reg['X']:=0; bb:=true; end else begin reg['X']:=reg['X']+reg['Y']; reg['Z']:=reg['Z']+reg['Y']; reg['Y']:=0; bb:=true; end; end; if (reg['Y']*reg['Z']<0) then begin if abs(reg['Y'])<abs(reg['Z']) then begin reg['Z']:=reg['Z']+reg['Y']; reg['X']:=reg['X']+reg['Y']; reg['Y']:=0; bb:=true; end else begin reg['X']:=reg['X']+(reg['Y'] div abs(reg['Y']))*abs(reg['Z']); reg['Y']:=reg['Y']+reg['Z']; reg['Z']:=0; bb:=true; end; end; end; procedure solve; var i,k,n:integer; c,d:char; begin readln(n); fillchar(reg,sizeof(reg),0); for i:=1 to n do begin read(c,d); readln(k); reg[c]:=reg[c]+k; end; repeat bb:=false; reduce; until not bb; writeln(abs(reg['X'])+abs(reg['Y'])+abs(reg['Z'])); for c:='X' to 'Z' do if reg[c]<>0 then writeln(c,' ',-1*reg[c]); end; begin solve; end. |
|
|