比赛 板子大赛 评测结果 WWWWW
题目名称 数列问题 最终得分 0
用户昵称 zqy 运行时间 0.034 s
代码语言 C++ 内存使用 3.46 MiB
提交时间 2025-01-22 10:47:17
显示代码纯文本
#include <iostream>
#include <cstdio>
using namespace std;
int n,sum,mk[20],a[20],check[100];
bool pd(int x){
    for(int i=2;i*i<=x;i++)if(x%i==0)return 0;
    return 1;
}
void print(){
    sum++;
    for(int i=1;i<=n;i++)printf("%d ",a[i]);
    printf("\n"); 
}
void dfs(int x){
    if(x>n){
        print();
    }else{
        for(int i=1;i<=n;i++){
            if(!mk[i]){
                if(check[i+a[x-1]]){
                    mk[i]=1,a[x]=i;
                    dfs(x+1);
                    mk[i]=0,a[x]=0;
                }
            }
        }
    }
    return;
}
int main(){
    freopen("dfs3.in","r",stdin);
    freopen("dfs3.out","w",stdout);
    cin>>n;
    for(int i=1;i<=n*2;i++)check[i]=pd(i); 
    dfs(1);
    cout<<sum<<endl;
    return 0;
}