比赛 20140713下午练习 评测结果 AAAAAATATT
题目名称 跳棋的挑战 最终得分 70
用户昵称 Satoshi 运行时间 3.438 s
代码语言 C++ 内存使用 0.31 MiB
提交时间 2014-07-13 16:44:20
显示代码纯文本
#include <fstream>
using namespace std;
ifstream in("checker.in");
ofstream out("checker.out");
int sum=0,a[15],n;
bool ok(int x, int y)
{
	int j,m=0;
	for(j=1;j<=y-1;j++)
	{
		if(x==a[j]||(x-a[j])*(x-a[j])==(y-j)*(y-j))m=1;
	}
	if(m)return false;
	else return true;
}
int mark(int b)
{
	int i;
	if(b>n)
	{
		sum++;
		if(sum<=3)
		{
			for(i=1;i<=n;i++)
			{
				out<<a[i]<<' ';
			}
			out<<endl;
		}
	}
	else for(i=1;i<=n;i++)
	{
		if(ok(i,b))
		{
			a[b]=i;
			mark(b+1);
		}
	}
return 0;	
}
int main()
{
	in>>n;
	mark(1);
	out<<sum;
	return 0;
}