记录编号 222877 评测结果 AAAAA
题目名称 黑白棋子的移动 最终得分 100
用户昵称 GravatarVacaTionGOD 是否通过 通过
代码语言 Pascal 运行时间 0.000 s
提交时间 2016-02-05 13:49:23 内存使用 0.17 MiB
显示代码纯文本
const max=100;
var n,st,sp:integer;
    c:array[1..max] of char;  {工作场所}

procedure print;  {打印}
  var i:integer;
  begin
    write('step',st:2,':');
    for i:=1 to 2*n+2 do write(c[i]);
    writeln;
    st:=st+1
  end;

procedure init(n:integer);  {初始化}
  var i:integer;
  begin
    st:=0;
    sp:=2*n+1;
    for i:=1 to n do c[i]:='o';
    for i:=n+1 to 2*n do c[i]:='*';
    c[2*n+1]:='-';c[2*n+2]:='-';
    print
  end;

procedure move(k:integer);  {移动一步}//将两个横线(空)移到k处(以左横线位置为序号)
  var j:integer;
  begin
    for j:=0 to 1 do begin c[sp+j]:=c[k+j];c[k+j]:='-';end;
    sp:=k;
    print
  end;

procedure mv(n:integer);    {主要过程}
  var i,k:integer;
  begin
    if n=4 then begin
                  move(4);
                  move(8);
                  move(2);
                  move(7);
                  move(1)
                end
           else begin
                  move(n);
                  move(2*n-1);
                  mv(n-1)
                end
  end;

begin  {main}
  assign(input,'chessman.in');
  assign(output,'chessman.out');
  reset(input);
  rewrite(output);
  readln(n);
  init(n);
  mv(n);
  close(input);
  close(output)
end.