⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 runround.pas

📁 Magio牛的usaco源代码
💻 PAS
字号:
{
ID:maigoak1
PROG:runround
}

program runround;
var
  fin,fout:text;
  d,i:integer;
  s:array[1..9]of integer;
  c:char;
procedure test;
  var
    i,t:integer;
    v:array[1..9]of boolean;
  begin
    fillchar(v,sizeof(v),0);
    t:=1;
    for i:=1 to d do begin
      t:=(t+s[t]) mod d;
      if t=0 then t:=d;
      if v[t] then exit;
      v[t]:=true;
    end;
    assign(fout,'runround.out');
    rewrite(fout);
    for i:=1 to d do
      write(fout,s[i]);
    writeln(fout);
    close(fout);
    halt;
  end;
procedure search(l:integer);
  function conflict:boolean;
    var
      i:integer;
    begin
      for i:=1 to l-1 do
        if s[l]=s[i] then begin
          conflict:=true;
          exit;
        end;
      conflict:=false;
    end;
  begin
    while s[l]<9 do begin
      inc(s[l]);
      while conflict do begin
        if s[l]=9 then exit;
        inc(s[l]);
        if l<d then s[l+1]:=0;
      end;
      if l=d then test else search(l+1);
      if l<d then s[l+1]:=0;
    end;
  end;
begin
  assign(fin,'runround.in');
  reset(fin);
  d:=0;
  repeat
    read(fin,c);
    if c<'0' then break;
    inc(d);
    s[d]:=ord(c)-49;
  until false;
  inc(s[d]);
  close(fin);

  search(1);
  while d<9 do begin
    inc(d);
    fillchar(s,sizeof(s),0);
    search(1);
  end;
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -