记录编号 139582 评测结果 AAAAAAAAAA
题目名称 N皇后问题 最终得分 100
用户昵称 Gravatar思邈然 是否通过 通过
代码语言 Pascal 运行时间 0.006 s
提交时间 2014-11-12 22:07:47 内存使用 0.15 MiB
显示代码纯文本
program cogs640;
var
y:array[1..20] of boolean;
dx,dy:array[-19..40]of boolean;
n,i,j,ans:longint;
procedure dfs(now:integer);
var
i:integer;
begin
   if now=n+1 then begin inc(ans);exit;end;
     for i:=1 to n do
     begin
       if (y[i])and(dx[now+i])and(dy[now-i]) then begin
        y[i]:=false; dx[now+i]:=false; dy[now-i]:=false;
        dfs(now+1);
        y[i]:=true;  dx[now+i]:=true;  dy[now-i]:=true; end;
     end;
end;
begin
assign(input,'queen.in');reset(input);
assign(output,'queen.out');rewrite(output);
fillchar(y,sizeof(y),true);
fillchar(dx,sizeof(dx),true);
fillchar(dy,sizeof(dy),true);
readln(n);
dfs(1);
writeln(ans);
close(input);close(output);
end.