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

📄 checker.pas

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

program checker;
const
  maxn=13;
var
  fin,fout:text;
  s:array[1..maxn-1]of byte;
  col:array[1..maxn]of boolean;
  sum:array[2..maxn*2]of boolean;
  dif:array[1-maxn..maxn-1]of boolean;
  n,r,count:longint;
procedure search(l:byte);
  var
    i:byte;
  begin
    if l=n then begin
      if col[r] or sum[n+r] or dif[n-r] then exit;
      inc(count);
      if count<4 then begin
        for i:=1 to n-1 do
          write(fout,s[i],' ');
        writeln(fout,r);
      end;
    end
    else
      for i:=1 to n do begin
        if col[i] or sum[l+i] or dif[l-i] then continue;
        col[i]:=true;sum[l+i]:=true;dif[l-i]:=true;dec(r,i);
        s[l]:=i;search(l+1);
        col[i]:=false;sum[l+i]:=false;dif[l-i]:=false;inc(r,i);
      end;
  end;
begin
  assign(fin,'checker.in');
  reset(fin);
  read(fin,n);
  close(fin);

  fillchar(col,sizeof(col),0);
  fillchar(sum,sizeof(sum),0);
  fillchar(dif,sizeof(dif),0);

  assign(fout,'checker.out');
  rewrite(fout);
  r:=(n+1)*n shr 1;count:=0;
  search(1);
  writeln(fout,count);
  close(fout);
end.

⌨️ 快捷键说明

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