记录编号 133057 评测结果 AAAAAAAAAA
题目名称 [USACO 1.5.4] 跳棋的挑战 最终得分 100
用户昵称 Gravatar天一阁 是否通过 通过
代码语言 C++ 运行时间 0.004 s
提交时间 2014-10-27 07:12:33 内存使用 0.31 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
int n,v[101]={0},total=0,vis=0;
bool b[101]={0},used[101]={0},c[101]={0};
int g[101]={0,1,0,0,0,0,4,40,92,352,724,2680,14200,73712,365596};
void search(int i){
	if(i==n+1){
		if(vis<3){
			for(int j=1;j<=n;j++) cout<<v[j]<<' ';
			cout<<endl;
			vis++;
		}
		else{
			cout<<g[n]<<endl;
			exit(0);
		}
	}
	else{
		for(int j=1;j<=n;j++){
			if(!b[i-j+n]&&!c[i+j]&&!used[j]){
				used[j]=b[i-j+n]=c[i+j]=1;
				v[i]=j;
				search(i+1);
				used[j]=b[i-j+n]=c[i+j]=0;
			}
		}
	}
}
int main(){
	freopen("checker.in","r",stdin);
	freopen("checker.out","w",stdout);
	cin>>n;
	search(1);
	cout<<total<<endl;
	return 0;
}