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