记录编号 359529 评测结果 AAAAA
题目名称 [HAOI 2004模拟]数列问题 最终得分 100
用户昵称 GravatarkZime 是否通过 通过
代码语言 C++ 运行时间 0.049 s
提交时间 2016-12-23 13:26:27 内存使用 0.32 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
int A[1000],n,t;
string str;
bool is_p(int x){
	if(x==0)return 0;
	for(int i=2;i*i<=x;i++)
		if(x%i==0)return 0;
	return 1;
}
void printf(){
	for(int i=0;i<n;i++)cout<<A[i]<<" ";
	cout<<"\n";
}
void dfs(int cur){
	if(cur==n){
		printf();
		t++;
	}
	else for(int i=1;i<=n;i++){
		int ok=1;
		for(int j=0;j<cur;j++)
			if(A[j]==i)ok=0;
		if(ok&&(is_p(A[cur-1]+i)||cur==0)){
			A[cur]=i;
			dfs(cur+1);
		}
	}
}
int main(){
	ios::sync_with_stdio(false);
	freopen("dfs3.in","r",stdin);
	freopen("dfs3.out","w",stdout);
	cin>>n;
	dfs(0);
	cout<<t<<"\n";
	return 0;
}