| 记录编号 | 
        598205 | 
        评测结果 | 
        AAAAA | 
    
    
        | 题目名称 | 
        66.[HAOI 2004模拟]数列问题 | 
        最终得分 | 
        100 | 
            
    
    
        | 用户昵称 | 
         梦那边的美好BP | 
        是否通过 | 
        通过 | 
    
    
        | 代码语言 | 
        C++ | 
        运行时间 | 
        0.108 s  | 
    
    
        | 提交时间 | 
        2025-01-22 17:16:03 | 
        内存使用 | 
        3.35 MiB  | 
        
    
    
    
    		显示代码纯文本
		
		#include <iostream>
#include <cstdio>
using namespace std;
int n;
int ans[50];
int tot=0;
////////////0 1 2 3 4 5 6 7 8 9 10111213141516171819202122232425262728293031323334353637383940
bool p[50]={0,0,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0}; 
bool vis[50];
void dfs(int t){
    if(t==n+1){
        for(int i=1;i<=n;i++){
            cout<<ans[i]<<" ";
        }
        cout<<endl;
        tot++;
        return ;
    }
    for(int i=1;i<=n;i++){
        if(vis[i])continue;
        if(t==1){
            ans[t]=i;
            vis[i]=1;
            dfs(t+1);
            vis[i]=0;
        }else{
            if(p[ans[t-1]+i]){
                ans[t]=i;
                vis[i]=1;
                dfs(t+1);
                vis[i]=0;
            }
        }
    }
}
int main(){
    freopen("dfs3.in","r",stdin);
    freopen("dfs3.out","w",stdout);
    cin>>n;
    dfs(1);
    cout<<tot;
    return 0;
}