Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

贴个PASCAL的代码。。。主程序比较短。

Posted by sw81500345 at 2011-09-04 12:33:14 on Problem 3414
var
  a,b,c,i,j,head,tail,x,y,ji:longint;
  q:array[0..1000000,1..4] of longint;
  v:array[0..101,0..101] of boolean;

procedure print(x:longint);
begin
  inc(ji);
  if q[x,3]=0 then begin writeln(ji-1); exit; end;
  print(q[x,3]);
  case q[x,4] of
    1:writeln('FILL(1)');
    2:writeln('FILL(2)');
    3:writeln('DROP(1)');
    4:writeln('DROP(2)');
    5:writeln('POUR(1,2)');
    6:writeln('POUR(2,1)');
  end;
end;

function canwork(i:longint):boolean;
begin
  canwork:=false;
  x:=q[head,1]; y:=q[head,2];
  case i of
    1:if x<a then exit(true);
    2:if y<b then exit(true);
    3:if x>0 then exit(true);
    4:if y>0 then exit(true);
    5:if (x>0) and (y<b) then exit(true);
    6:if (y>0) and (x<a) then exit(true);
  end;
end;

procedure work(i:longint);
begin
  x:=q[head,1]; y:=q[head,2];
  case i of
    1:x:=a;
    2:y:=b;
    3:x:=0;
    4:y:=0;
    5:begin y:=y+x; if y>b then begin x:=y-b; y:=b; end else x:=0; end;
    6:begin x:=x+y; if x>a then begin y:=x-a; x:=a; end else y:=0; end;
  end;
  if not v[x,y] then
    begin
      v[x,y]:=true;
      inc(tail);
      q[tail,1]:=x;
      q[tail,2]:=y;
      q[tail,3]:=head;
      q[tail,4]:=i;
    end;
end;
{MAIN}
begin
  readln(a,b,c);
  head:=1; tail:=1;
  q[1,1]:=0; q[1,2]:=0; q[1,3]:=0; q[1,4]:=0;
  v[0,0]:=true;
  while head<=tail do
    begin
      for i:=1 to 6 do
       begin
         if canwork(i) then work(i);
         if (q[tail,1]=c) or (q[tail,2]=c) then
           begin
             ji:=0; print(tail); halt;
           end;
       end;
      inc(head);
    end;
  writeln('impossible');
end.

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator